SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。
DataDefinitionLanguage,数据定义语言,用来定义数据库对象(数据库,表,字段)。
案例3:可以通过ifnotexists参数来解决这个问题,数据库不存在,则创建该数据库,如果存在,则不创建。
1use数据库名;案例1:我们要操作某一个数据库下的表时,就需要通过该指令,切换到对应的数据库下,否则是不能操作的。比如,切换到yun3k数据库。
1desc表明名;案例1:查询mysql数据库下的component字段
1showcreatetable表名;案例1:查询mysql数据库下的component建表语句
案例1:年龄字段,不会出现负数,而且人的年龄不会太大
1agetintyintunsigned案例2:分数,总分100分,最多出现一位小数
1scoredouble(4,1)类型大小描述CHAR0-255bytes定长字符串(需要指定长度)VARCHAR0-65535bytes变长字符串(需要指定长度)TINYBLOB0-255bytes不超过255个字符的二进制数据TINYTEXT0-255bytes短文本字符串BLOB0-65535bytes二进制形式的长文本数据TEXT0-65535bytes长文本数据MEDIUMBLOB0-16777215bytes二进制形式的中等长度文本MEDIUMTEXT0-16777215bytes中等长度文本数据LONGBLOB0-4294967295bytes二进制形式的极大文本数据LONGTEXT0-4294967295bytes极大文本数据注:char与varchar都可以描述字符串,char是定长字符串,指定长度多少,就占用多少个字符,和字段值的长度无关。而varchar是变长字符串,指定的长度为最大占用长度。相对来说,char的性能会更高些
案例1:用户名username长度不定,最长不会超过50
1usernamevarchar(20)案例2:性别gender存储值,不是男,就是女
1genderchar(1)案例3:手机号phone固定长度为11
1createtimedatetime(6).表操作案例设计一张员工信息表,要求如下:
案例1:如果yun3k_user表存在,则删除yun3k_user表。
案例1:删除并重新创建yun3k_employee。
1INSERTINTO表名(字段名1,字段名2,...)VALUES(值1,值2,...);案例1:给yun3k_employee表所有的字段添加数据。
1UPDATE表名SET字段名1=值1,字段名2=值2,....[WHERE条件];案例1:修改yun3k_employee表中id为1的数据,将name修改为yun3k_net。
1DELETEFROM表名[WHERE条件];案例1:删除yun3k_employee表中gender为女的员工。
DQL英文全称是DataQueryLanguage(数据查询语言),数据查询语言是用来查询数据库中表的记录
运行以下sql,准备数据:
1SELECT2字段列表3FROM4表名列表5WHERE6条件列表7GROUPBY8分组字段列表9HAVING10分组后条件列表11ORDERBY12排序字段列表13LIMIT14分页参数2.基础查询(1).查询多个字段1SELECT字段1,字段2,字段3...FROM表名;1SELECT*FROM表名;注:*号代表查询所有字段,在实际开发中尽量少用(不直观、影响效率)。
案例1:查询yun3k_emp指定字段name,workno,age并返回
案例1:统计该企业员工数量
案例1:根据性别分组,统计男性员工和女性员工的数量
案例1:根据年龄对公司的员工进行升序排序
案例1:查询第1页员工数据,每页展示10条记录
查询年龄大于15的员工姓名、年龄,并根据年龄进行升序排序。
此时我们可以给select后面的字段起别名,然后在where中使用这个别名,然后看看是否可以执行成功。
1selecte.nameename,e.ageeagefromyun3k_empewhereeage>15orderbyageasc;执行上述sql报错了:
由此我们可以得出结论:from先执行,然后执行where,再执行select。
接下来,我们再执行如下SQL语句,查看执行效果:
综上所述,我们可以看到DQL语句的执行顺序为:from…where…groupby…having…select…orderby…limit…
DCL英文全称是DataControlLanguage(数据控制语言),用来管理数据库用户、控制数据库的访问权限。