SQL语句概念使用说明
时间:2018-03-08作者:华清远见
1、SQL分类 SQL语句主要可以划分以下3个类别。 1)DDL语句:数据定义语句,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的关键字主要包括creat、drop、alter等。 2)DML语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字主要包括 inster、delete、update 和 select等。 3)DCL语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke等。 2、DDL语句 DDL是数据定义语句的缩写。是对数据库内部的对象进行创建、删除、修改等操作的语言。它和DML语句的最大区别是DML只是对表内部数据操作,而不涉及表的定义、结构的修改,更不会涉及其他对象。DDL语句更多地由数据库管理员(DBA)使用,开发人员一般很少使用。 1)创建数据库 CREATE DATABASE dbname 例如,创建数据库test1,命令执行如下: create database test1 ; 如果需要查询系统中都存在哪些数据库,可以使用以下命令查看: show databases ; 在系统中会存在4个由MySQL系统自动创建的数据库,分别为: information_schema : 主要存储系统中的一些数据库对象信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等。 cluster : 存储系统的集群信息。 mysql : 存储系统的用户权限信息。 test : 系统自动创建的测试数据库,任何用户都可以使用。 选择要操作的数据库: USE dbname 例如,选择数据库test1 : use test1 ; 查看test1数据库中创建的所有数据表 : show tables ; 2)删除数据库 删除数据库的语法,如下: drop database dbname ; 例如,要删除test1数据库: drop database test1 ; 3)创建表 在数据库中创建一张表的基本语法如下: CREATE TABLE tablename ( column_name_1 column_type_1 constraints , column_name_2 column_type_2 constraints , . . . column_name_n column_type_n constraints ) 其中 , column_name 是列的名字;column_type 是列的数据类型; constraints 是这个列的约束条件。 例如,创建一个名称为emp的表。表中包括ename(姓名)、hiredate(雇佣日期)和sal(薪水)三个字段,字段类型分别为varchar(10)、date、int(2) create table emp ( ename varchar(10) , hiredate date , sal decimal (10, 2) , deptno int(2) ) ; 表创建完毕后,如果需要查看一下表的定义,可以使用如下命令: DESC tablename 例如,查看emp表: desc emp ; 如果需要查看创建表的SQL语句,可以使用如下命令: show create table emp \G ; 注:\G 选项的含义是使得记录能够按照字段竖向排列,以便更好地显示内容较长的记录。 4)删除表 表的删除命令如下: DROP TABLE tablename 例如,要删除数据表emp: drop table emp ; 5)修改表 修改表类型 ,语法如下: ALTER TABLE tablename MODIFY [COLUMN] column_definition [FIRST|AFTER col_name] 例如,修改表emp的ename字段定义,将 varchar(10)改为varchar(20): alter tabke emp modify ename varchar(20); 增加表字段,语法如下: ALTER TABLE tablename ADD[COLUMN] column_definition [FIRST|AFTER col_name] 例如,在表emp中新增加字段 age ,类型为 int(3): alter table emp add column age int(3); 删除表字段,语法如下: ALTER TABLE tablename DROP [COLUMN] col_name 例如,将字段age删除: alter table emp drop column age ; 字段改名,语法如下: ALTER TABLE tablename CHANGE [COLUMN] old_col_name column_definition [FIRST|AFTER col_name] 例如,将age改名为age1,同时修改字段类型为 int(4): alter table emp change age age1 int(4) ; 修改字段排列顺序: 前面介绍的字段增加和修改语句(ADD/CHANG/MODIFY)中,都有一个可选项 first | after column_name ,这个选项可以用来修改字段在表中的位置,ADD增减的新字段默认是加载表的最后位置,而CHANGE/MODIFY默认都不会改变字段的位置。 例如, 将新增的字段 birth date 加在 ename之后: alter table emp add birth date after ename ; 修改 age 字段,将它放在最前面: alter table emp modify age int(3) first ; 注意:CHANGE/FIRST|AFTER COLUMN 都属于MySQL在标准SQL上的扩展,在其他数据库上不一定适用。 更改表名,语法如下: ALTER TABLE tablename RENAME [TO] new_tablename 例如,将表 emp 改名为 emp1: alter table emp rename emp1 ; 3、DML语句 DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select),是开发人员日常使用最多的操作。 1)插入记录 向表中插入记录的基本语法如下: INSERT INTO tablename (field1 , field2 ,. . . ,fieldn) VALUES(value1 , value2 , . . . ,valuen); 例如,向表 emp 中插入记录: insert into emp (ename, hiredate, sal, deptno) values ('zzx1', '2000-01-01', '2000', 1); 也可以不指定字段名称,但是 values 后面的顺序应该和字段的排列顺序一致: insert into emp values('lisa', '2001-01-02', '3000', 2); 含可空字段、非空但是含有默认值的字段、自增字段,可以不用再insert后的字段列表中出现,values后面只写对应字段名称的 value 。这些没写的字段可以自动设置为NULL、默认值、自增的下一个数字。 例如:只对表中的ename和sal显示插入值: insert into emp (ename, sal) values('dony', '1000') ; 在MySQL中,insert语句可以一次性插入多条记录。 2)更新记录 表里的记录值可以通过update命令进行更改,语法如下: UPDATE tablename SET field1 = value1,field2 = value2,. . .,fieldn = valuen [WHERE CONDITION] 例如,将表emp中ename为 "lisa"的sal从3000更改为4000: update emp set sal=4000 whereename='lisa' ; 3) 删除记录 使用delete删除记录,语法如下: DELETE FROM tablename [WHERE CONDITION] 例如,在emp中将ename为dony的记录全部删除: delete from emp where ename='dony' ; 注意:不加where条件将会把表的所有记录删除,所以操作时一定小心。 4)查询记录 基本语法如下: SELECT * FROM tablename [WHERE CONDITION] 例如,将表emp中的记录全部查询出来: select * form emp ; 相关资讯
发表评论
|