一、SQL的分类
- DDL(Data Definition Language):数据定义语言,用来操作数据库对象:库、表、列等;
- DML(Data Manipulation Language):数据操作语言,用来增删改数据库中的数据;
- DCL(Data Control Language):数据控制语言,用来设置访问权限和安全级别;
- DQL(Data Query Language):数据查询语言,用来查询数据库中的数据。
二、MySQL中DDL常用命令
1、操作数据库
2、操作数据库表
3、常用的字段数据类型:
4、补充SQL中char、varchar、nchar、nvarchar的区别
- 字符中,英文字符只需要一个字节存储,汉字需要两个字节存储。英文与汉字同时存在时容易造成混乱,
- Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。
- nchar、nvarchar它存储Unicode字符,即所有的字符都用两个字节表示并存储。所以nchar、nvarchar长度是在1到4000之间,最多存储4000个字符。
- char、varchar它存储非Unicode字符,即英文字符只需要一个字节存储,汉字需要两个字节存储。所以最多存储8000个英文,4000个汉字。
- 可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
5、补充SQL中char(n)、varchar(n)的区别
- char(n):固定长度字符串类型,n 必须是一个介于 1 和 8,000 之间的数值
- 例如char (10),它是定长的,当你输入的字符长度小于10时,它会再后面补空值,保证存储字符串长度为10。当你输入的字符大于10时,会报错。取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。
- varchar(n):可变长度字符串类型,n 必须是一个介于 1 和 8,000 之间的数值。
- 例如varchar(10);表示最多存储10个字符,英文或汉字都行。特别说明是10个字符或者10个汉字。有人认为汉字占2位,只能存储5个汉字,但是实际测试证明这里的10是指字符数量,如果是10个汉字,则是存储了20位字节,命令不会报错,因为varchar是可变长度。
- 可变的意思表示当你输入的字符小于10时,它不会在后面补空值。假如输入3个字符,则他存储长度为3,超过10个字符则报错。
三、MySQL之DML常用命令
DML是对数据库表中的数据进行增、删、改的操作,即添加表中的数据,删除表中的数据,修改表中的数据。MySQL的DML命令主要下面三个关键字:INSERT、DELETE、UPDATE组成。(下图由于表格太大放上去格式变乱,所以改成截图)
补充DELETE和TRUNCATE的区别:
- DELETE只是删除表中的数据,不删除表,删除后的数据可以恢复。
- TRUNCATE删除是把表直接删掉(drop),然后再创建一个同样的新表。删除的数据不能找回。执行速度比DELETE快。
- 开发中通常使用DELETE。
四、MySQL之DQL常用命令--简单查询
DQL中主要是用来查询数据库中的数据,不会对数据库中的数据进行改变,查询关键字:SELECT
语法:SELECT 字段名 FROM 表名 [WHERE –> GROUP BY –>HAVING–> ORDER BY];其中[]中的内容是查询条件。
包含where关键字的条件查询
附:MySQL语句大小写问题
- 注意:mysql在windows下是不区分大小写的,在linux中区分大小写,规则如下:
- 数据库名与表名是严格区分大小写的;
- 表的别名是严格区分大小写的;
- 字段名和字段的别名在所有的情况下均是忽略大小写的;
- 变量名也是严格区分大小写的;
- 可以在linux中修改mysql配置使其忽略大小写。