数据定义语言:DDL
CREATE、DROP、ALTER等语句
创建数据库 create database 数据库名; create database 数据库名 character set 字符集;
查看数据库 show databases;//查看数据库中的所有的数据库 show create database 数据库名;//查看指定的数据库 desc 表名;//查看表结构
删除数据库 drop database 数据库名称;
修改数据库 修改表添加列 alter table 表名 add 列名 类型(长度) 约束; 修改表修改列的类型长度及约束 alter table 表名 modify 列名 类型(长度) 约束; 注意: 如果有数据,必须注意数据类型 varchar-->int 容易有错误数据 修改表修改列名 alter table 表名 change 旧列名 新列名 类型(长度) 约束; 修改表删除列 alter table 表名 drop 列名; 注意: 如果列中有数据,数据就会一起删除了,需谨慎 修改表名 rename table 表名 to 新表名; 修改表的字符集 alter table 表名 character set 字符集;
切换数据库 use 数据库名; 查看正在使用的数据库 select database();
创建表空间 create tablespace 表空间名称 datafile '文件所在目录\表空间名称.dbf' size 100m (初始大小100兆) autoextend on next 10m; (自动增长,每次增长10兆)
在表空间中创建用户 create user 用户名 identified by 密码 default tablespace 表空间名称(给用户分配默认表空间);
删除表空间 drop tablespace 表空间名称;
删除表空间连带删除数据文件 drop tablespace 表空间名称 including contents and datafiles;
数据操作语言:DML
INSERT(插入)、UPDATE(修改)、DELETE(删除)语句
插入数据 向表中插入某些列 insert into 表 (列名 1,列名 2,列名 3..) values (值 1,值 2,值 3..); 添加数据格式,不考虑主键 insert into 表名(列名:不包含主键) values (值:不包含主键); 向表中插入所有列(需要给出主键) insert into 表 values (值 1,值 2,值 3..); 批量写入 insert into 表名(列名 1,列名 2,..) values (值 1,值 2,..),(值 1,值 2,..)...;
注意:
1.插入的数据应与字段的数据类型相同
2.数据的大小应该在列的长度范围内
3.在 values 中列出的数据位置必须与被加入列的排列位置相对应
4.除了数值类型外,其它的字段类型的值必须使用引号引起
5.如果要插入空值,可以不写字段,或者插入 null
6.对于自动增长的列在操作时,直接插入 null 值即可更新数据 update 表名 set 字段名=值,字段名=值; update 表名 set 字段名=值,字段名=值 where 条件;
注意:
1.列名的类型与修改的值要一致
2.修改值的时候不能超过其最大长度
3.值如果是字符或者日期需要加 “ ”删除数据 删除表结构 drop table 表名; 逐条删除,不清空 auto_increment 记录数 delete from 表名 [where 条件]; 直接将表删除,重新建表,auto_increment 将置为零 truncate table 表名;(数据量大时效率高)
数据控制语言:DCL
GRANT、REVOKE等语句
查询当前用户的角色 select * from role_sys_privs;
权限分类 dba:最高权限 connect:可以连接数据库,做一些简单的增删改 resource:可以创建视图、索引、序列、存储过程等
给用户分配角色 grant dba(权限) to 用户名;
数据查询语言:DQL
SELECT语句
查询数据库 查询指定字段 select 字段1,字段2,...from 表名; 查询表中所有字段 select * from 表名; 去除重复记录 select distinct 字段 from 表名; 表别名查询 select * from 表名 as 别名;(as可省略) 列别名查询 select 字段名 as 别名 from 表名;(as可省略) 直接对列进行运算 select (1+2);
其他
按照用户导出数据(cmd窗口) exp system/密码 owner=用户 file=本地路径\文件名.dmp
按照用户导入数据(cmd窗口) imp system/密码 file=本地路径\文件名.dmp fromuser=用户1 touser=用户2
按照表导出数据(cmd窗口) exp 用户/密码 file=本地路径\表名.dmp tables=表名
按照表导入数据(cmd窗口) imp 用户/密码 file=本地路径\表名.dmp tables=表名
跨用户查询其他用户下的表 select * from scott.emp;
同义词:方便跨用户查询其他用户下的表,数据还在scott用户下 create synonym s_emp for scott.emp; select * from s_emp;
跨用户复制表(select查询创建表) create table emp as select * from scott.emp; select * from emp;