数据库种类有很多,如果每种数据库都需要学一套指令,太麻烦,所有的关系型数据库,都遵守同一种语言规范。sql结构化查询语言
主要是学习sql语言
-- 创建数据库 create database test; -- 切换数据库 use test; -- 显示所有数据库 SHOW databases; -- 删除数据库 drop database test;
-- a、创建表 create table emp ( -- 先写属性名称,写属性类型 id int, -- int类型不需要声明长度 name varchar(20), -- varchar类型类似Java中的String类型,(20)是字符串的长度 salary DECIMAL(8,2) -- DECIMAL小数 (总长度,小数点后面的位数) );
drop table dept; -- 语法:drop table 表名
-- 修改表结构,添加属性(字段、列、Column) alter TABLE emp -- 修改表 add phone int; -- 添加属性 add 属性名称 属性类型 -- 语法:alter table 表名 add 属性名 类型; -- 修改表结构,修改属性(字段、列、Column) alter TABLE emp -- 修改表 modify phone char(11); -- char也是字符串类型(定长) -- 语法:alter table 表名 MODIFY 属性名 类型; -- 修改表结构,删除属性 alter TABLE emp -- 修改表 drop phone; -- 语法:alter table 表名 drop 属性名;
alter table emp change phone2 phone varchar(11);
-- 添加主键 primary key 当前属性不能为空且不重复 create table emp ( -- 先写属性名称,写属性类型 id int primary key , -- int类型不需要声明长度 name varchar(20), -- varchar类型类似Java中的String类型,(20)是字符串的长度 salary DECIMAL(8,2) -- DECIMAL小数 (总长度,小数点后面的位数) );
-- 添加自增 auto_increment 数据库系统会自动对这个属性填入数据 create table emp ( -- 先写属性名称,写属性类型 id int primary key auto_increment, -- int类型不需要声明长度 name varchar(20), -- varchar类型类似Java中的String类型,(20)是字符串的长度 salary DECIMAL(8,2) -- DECIMAL小数 (总长度,小数点后面的位数) );
-- DML 数据操作语言 DML操作表中的数据 -- 添加数据 insert into 表名 values(val1,val2...); 小括号内val的个数与表结构中的属性个数一致 全属性插入 insert into emp values(1,'andy','2002-8-8',123456.889); insert into emp values(null,'jack','2002-9-9',123456.654); -- 有员工入职,人事办理入职手续 insert into emp values(null,'jackson','2002-9-9',null); -- 选择属性插入数据 insert into emp(name,birthday) values('jack','2002-9-9');
-- 修改数据 -- 员工已入职 ,已经插入到数据表中, 财务填写工资,还是新增么?进行修改操作 update 表名 set COLUMN1=value1,COLUMN2=VALUE2... where COLUMNn=VALUEn UPDATE 是要修改哪个表 set 是要修改哪些属性(列) where 是要修改哪些行 -- 给id为4的员工修改工资 update emp set salary = 5500 where id=4; -- 给姓名为jack的员工修改工资 update emp set salary = 5500 where name='jack'; -- 给所有的员工修改工资 update emp set salary = 15500,birthday='2003-7-7'; update emp set birthday='1902-2-2' where id=3;
-- 删除 delete FROM 表名 where 条件 delete from emp; delete from emp where birthday<'1922-7-7'; delete from emp where salary>=100000 and salary<=200000;