MySQL命令语句

一、MySQL命令
1.创建数据库
create database test default charachar set utf8;
2.查看数据库
show databases;
3.选择数据库
use test;
4.查看数据库编码
select schema_name,default_character_set_name from information_schema.schemata where schema_name=‘test’;
5.删除数据库
drop database test;
6.创建表
creat table employees(
employee_id int,
last_name varchar(30),
salary float(8,2) //float类型,长度为8,小数点为2
);
7.删除表
drop table employees;
8.修改表名
alter table employees rename emp;
9.修改列名(将原来的列名:last_name修改为name)
alter table emp change column last_name name varchar(30);
10.修改列的类型(将name中的长度修改为40)
alter table emp modify name varchar(40);
11.添加新的列(增加新列commission_pct float(4,2) )
alter table emp add column commission_pct float(4,2);
12.删除列commission_pct
alter table emp drop column commission_pot;

二、MySQL约束
非空约束(not null)
唯一约束(unique)
主键约束(primary key) PK
外键约束(foregin key) FK
检查约束(MySQL不支持,Oracle支持)

1.查看表中约束信息
show keys from emp;
2.创建表约束(表名departments department_id主键且自增,department_name列不允许重复,location_id不含空值)
create table departments(
department_id int primary key auto_increment,
department_name varchar(30) unique,
location_id int nor null
);
3.创建employees表包含employees_id为主键且自动增长,last_name不允许为空,email不允许重复,不允许为空。depr_id为外键参照departments表为主键
create table employees(
employee_id int primary key auto_increment,
last_name varchar(30) not null,
email varchar(40) unique,
dept_id int ,
constraint emp_fk foreign key(dept_id) references departments(department_id);
);
4.修改主键约束
alter table 表名 add primary key 列名
添加主键:alter table emp add primary key(employee_id)
添加自动增长:alter table emp modify employee_id int auto_increment;
5.删除主键约束
alter table 表名 drop primary key
注意:在删除主键时,如果主键中有自动增长 要先删除自动增长
删除主键employee_id 的主键约束
去掉自动增长:alter table emp modify employee_id int;
删除主键:alter table emp drop primary key;
6.修该非空约束
添加非空约束:alter table emp mofiy salary float(8,2) not null;
删除非空约束:alter table emp mofiy salary float(8,2) null;
7.修改唯一约束
添加唯一约束:alter table emp add constraint emp_uk unique(name);
删除唯一约束:alter table emp drop key emp_uk;
8.修改外键约束
添加dept_id列·:alter table add column dept_id int;

alter table 表名  add constraint    约束名 foreign key(列名) reference参照表(参照的列名);
添加外键:alter table emp add constraint    e_fk foreign key(dept_id) reference departments(department_id);

alter table 表名 drop foreign key 约束名;
删除外键:alter table emp drop foreign key e_fk;
删除索引:alter table emp drop index e_fk;

三、MySQL中的DML操作(insert、delete、update)

1.insert插入数据
选择插入数据
insert int departments(department_name,location_id) values(“admin”,1);
完全插入一条数据
如果主键是自动增长时:需要使用default或者null或者0占位
insert into departments values(default,“development”,2);

7.1.2自动增长(auto_increment)
MySQL 中的自动增长类型要求:
• 一个表中只能有一个列为自动增长。
• 自动增长的列的类型必须是整数类型。
• 自动增长只能添加到具备主键约束与唯一性约束的列上。
• 删除主键约束或唯一性约束,如果该列拥有自动增长能力,则需要先去掉自动增长然
后在删除约束。
创建一个自动增长的列
create table emp2(
id int primary key,
name varchar(30),
seq_num int unique auto_increment
);
2.update更新

7.2.1mysql 的 update 的特点
•更新的表不能在 set 和 where 中用于子查询;
• update 后面可以做任意的查询

update emp3 e set e.address=“beijing” where emp_id=1;
7.2.1.1 示例一更新 emp3 表中的 id 为 1 的数据,添加 address 为 BeiJing。
update emp3 e set e.address = “BeiJing” where emp_id = 1;
7.2.1.2 示例二方式一:更新 emp3 中 id 为 2 的数据,将地址修改为与 id 为 1 用户的地址相同
Oracle:update emp3 e set e.address = (select address from emp3 where emp_id = 1)where e.emp_id = 2;
MySQL: update emp3 e ,(select address from emp3 where emp_id = 1)t set e.address = t.address where e.emp_id =2;
方式二:更新 emp3 中 id 为 2 的数据,将地址修改为与 id 为 1 用户的地址相同
update emp3 e set e.address = (select t1.address from (select emp_id, address from emp3)t1 where t1.emp_id = 1 ) where e.emp_id = 2;

3.delete删除数据 delect 和 truncate
1.删除emp3表中emp_id为1的雇员信息
delete from emp3 where emp_id=1;
2.使用truncate清空表
删除emp3表中的所有数据
truncate table emp3;

delete 与truncate区别
1.truncate 是整体删除、delete是逐条删除
2.truncate 不写服务器log, delete写服务器log,这也就是truncate效率比detele高的原因
3.truncate会重置自增的值,而detele不会重置自增的值

四、MySQL中的事务提交

start transaction;
insert into emp3 values(defaulrt ,"older",default,dafault);
commit;
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值