MySQL常用语句简介


本文摘自PHP中文网,作者墨辰?R,侵删。

本篇文章主要介绍数据库、数据表、数据类型、字符串以及时间与日期等常用语句,感兴趣的小伙伴参考下。

数据库(Database)
数据表 table
列 column
行 row
冗余
主键 primary key
外键 foreign key
复合键
索引
参照完整性

MySQL 数据类型

三类:数值、日期/时间和字符串(字符)
数值
TINYINT 1 字节(0,255)
SMALLINT 2 字节(0,65 535)
MEDIUMINT 3 字节
INT或INTEGER 4 字节 BIGINT 8 字节
FLOAT 4 字节 DOUBLE 8 字节 DECIMAL

日期时间
DATE 日期值
TIME 时间值或持续时间
YEAR 年份值
DATETIME 混合日期和时间值
TIMESTAMP 时间戳

字符串
CHAR 0-255字节 、VARCHAR 0-65535 字节
BINARY、VARBINARY、BLOB、TEXT、ENUM和SET

事务是必须满足4个条件(ACID):
Atomicity(原子性)、Consistency(稳定性)、Isolation(隔离性)、Durability(可靠性)

1、事务的原子性:一组事务,要么成功;要么撤回。
2、稳定性 : 有非法数据(外键约束之类),事务撤回。
3、隔离性:事务独立运行。一个事务处理后的结果,影响了其他事务,那么其他事务会撤回。
事务的100%隔离,需要牺牲速度。
4、可靠性:软、硬件崩溃后,InnoDB数据表驱动会利用日志文件重构修改。
可靠性和高速度不可兼得, innodb_flush_log_at_trx_commit选项 决定什么时候吧事务保存到日志里。

命令如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

mysql> -uroot -p123456 登陆

mysql> grant all on test.* to 'pengshiyu'@'localhost'

    -> identified by '123456'; 创建用户

mysql> quit  退出

 

mysql> show databases;  查看数据库

mysql> create database test;  创建数据库

mysql> create database test charset utf8;  指定字符集支持中文

mysql> show create database test;  查看数据库信息

mysql> drop database test;  删除数据库

mysql> use test;  进入数据库

 

mysql> create table student(

    -> id int auto_increment,

    -> name char(32) not null,

    -> age int not null,

    -> register_data date not null,

    -> primary key (id)

    -> );  创建表

mysql> show tables;  查看表

mysql> desc student;   查看表结构

mysql> describe student;   查看表结构

mysql> show columns from student;  查看表结构

mysql> insert into student(name, age, register_data)

    -> values('tom', 27, '2018-06-25'); 增加记录

mysql> select * from student;  查询数据

mysql> select * from student\G  按行输出

mysql> select * from student limit 3;  限制查询数量

mysql> select * from student limit 3 offset 5;  丢弃前5条数

mysql> select * from student where id > 3; 条件查询

mysql> select * from  student where register_data like "2018-06%";  模糊查询

mysql> update student set name = 'cxx' where id = 10;  修改

mysql> delete from student where id = 10;  删除

mysql> select * from student order by age; 排序默认ascend

mysql> select * from student order by age desc;  降序descend

mysql> select age,count(*) as num from student group by age; 分组

mysql> select name, sum(age) from student group by name with rollup; 汇总

mysql> select coalesce(name,'sum'), sum(age) from student

    -> group by name with rollup; 汇总取别名

 

mysql> alter table student add sex enum('M','F');  增加字段

mysql> alter table student drop sex;  删除字段

mysql> alter table student modify sex enum('M','F') not null; 修改字段类型

mysql> alter table student modify sex

    -> enum('M','F') not null default 'M';  设置默认值

mysql> alter table student change sex gender

    -> enum('M','F') not null default 'M'; 修改字段名称

 

mysql> create table study_record(

    -> id int not null primary key auto_increment,

    -> day int not null,

    -> stu_id int not null,

    -> constraint fk_student_key foreign key (stu_id) references student(id)

    -> );命名外键约束

 

创建表

mysql> create table A(a int not null);

mysql> create table B(b int not null);

 

插入数据

mysql> insert into A(a) values (1);

mysql> insert into A(a) values (2);

mysql> insert into A(a) values (3);

mysql> insert into A(a) values (4);

 

mysql> insert into B(b) values (3);

mysql> insert into B(b) values (4);

mysql> insert into B(b) values (5);

mysql> insert into B(b) values (6);

mysql> insert into B(b) values (7);

 

交集 内连接

mysql> select * from A inner join B on A.a = B.b;

mysql> select a.*, b.* from A inner join B on A.a = B.b;

差集

mysql> select * from A left join B on A.a =B.b; 左外连接

mysql> select * from A right join B on A.a =B.b; 右外连接

并集

mysql> select * from a left join b on a.a=b.b union

    ->  select * from a right join b on a.a = b.b; 全连接

 

mysql> begin; 开始事务

mysql> rollback; 回滚事务

mysql> commit;  提交事务

mysql> show index from student; 查看索引

mysql> create index name_index on student(name(10)); 创建索引

mysql> drop index name_index on student;删除索引

相关推荐:

MySQL 语句大全:创建、授权、查询、修改

30 个优化 MySQL 语句的技巧

PHP中常用的几个 mysql 语句_PHP教程

以上就是MySQL常用语句简介的详细内容,更多文章请关注木庄网络博客

相关阅读 >>

mysql基础之连接mysql、修改密码、添加用户

mysql如何输出汉字信息

mysql基本语法

mysql权限管理grant命令使笔记

mysql锁表如何解锁

mysql无法显示中文怎么办?

mysql如何实现查重只留一个

linux下安装mysql教程

mysql数据库查询基础,简单查询,条件查询,对查询结果排序

如何解决mysql错误1054modify

更多相关阅读请进入《mysql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...