第一章:SQL基础 一、入门1、分类 1) DDL:数据定义语言:定义不同的数据段,数据库,表,列,索引等数据库对象。 2)DML:数据操作语句:用于添加,删除,更新和查询数据库记录并检查数据完整性。常用的语句有:insert,delete,update,select等。 3)DCL:数据控制语句:用于控制不同数据段直接的许可和访问级别的语句。定义了数据库,表,字段,用户的访问权限和安全级别,主要的语句关键字包括grant,revoke等。 2、创建数据库后的几个额外数据库 1) information_schema:主要存储了系统中的一些数据库对象信息,比如用户表信息,列信息,权限信息,字符集信息,分区信息等。 2) cluster:存储了系统的集群信息 3) mysql:存储了系统的用户权限信息。 4) test:系统自动创建的测试数据库,任何用户都可以使用。 3、DDL的操作方法 1)创建数据库 mysql -uroot -p 输入密码 回车 create database 库名 2)删除数据库 drop database 库名 3) 创建表 create table 表名() 4)删除表 drop table 表名 5) 修改表 a.修改表类型:alter table 表名 modify .... b.添加表字段 :alter table 表名 add ... 例如:新加字段birth,加载ename后面。 alter table emp add birth date after ename; c.删除表字段: alter table 表名 drop... 例如:修改字段aage,将它放在最前面。 alter table emp modify age int(3) first d.字段改名: alter table change ... 注意: change和modify都可以修改表的定义,不同的是change后面需要写两次列名,不方便,但是change的优点是可以修改列名称。modify则不能。 6)更改表名 alter table 表名 【To】 新表名 例如:将表名emp改为emp1 alter table emp rename mep1 4、DML语句 操作是对数据库中表记录的操作,主要包括记录的插入,更新,删除和查询。 1)插入记录 eg:插入一条数据 insert into emp(ename,hiredate,sal) values('zz','20001-02-29','2000'); 也可以不用指定字段。但是values后面的顺讯必须和字段的排列顺序一致。 insert into emp values('zz,'2001-02-29,'2000'); eg:一次性插入多条数据 insert into dept values(5,'dept5'),(6,'dept6); 2) 更新记录 语法: update 表名 set 字段='值',字段='值' update emp set sal=4000,ename='yy'; 3) 删除记录 delete from 表名 where 字段='值' 4) 查询记录 select *,count(*)等聚合函数 from 表名 where 条件 order by 字段 【desc/asc】 group by 字段 having count(1) > 1 5) 表连接(分为左连接和右连接) eg: select ename,depname from emp 【left/right】 join dept on emp.deptno= dept.detno; 6)子查询 eg: select * from emp where deptno in (select deptno from dept); 注意: 如果子查询记录唯一,那么可以用"="代替in 7)记录联合 将两个表数据按照一定的查询条件查询出来后,将结果合并到一起显示出来,这个时候,就需要用union和union all 关键字来实现这样的功能 eg: select deptno from emp union select deptno from dept//此时将两个表中的deptno一块显示出来。 5、DCL语句 主要是DBA用来管理系统中的对象权限时使用。 eg: 创建数据库z1,具有对sakila数据库中所有表的select/insert权限 grant select,insert on sakila.* to 'z1'@'localhost'或者% identified by '124'; 如果: 此时将z1的权限变更,收回insert,只能对数据进行select操作 eg: revoke insert on sakila.* from 'z1'@'localhost'; 二、帮助文档的使用 1、使用"? contents" 命令来显示所有可供查询的分类 对于列出的分类,可以使用"? 类别分类"的方式针对用户感兴趣的内容做进一步查看。 例如: 想看看mysql中都支持哪些数据类型,可以执行"? types"命令 列出了此版本支持的所有数据类型,如果想知道int类型的具体介绍,也可以利用上面的方法做进一步查看。 2、快速查询文档 show命令 如果想查看create table语法,可以用命令: ? create table |
|