#数据库操作
mysql -h127.0.0.1 -P3306 -uroot -p123456 #连接数据库
show databases; #显示数据库
use dnname; #选择库
show tables; #显示库中的表
desc tbname; #显示表字段信息
show create table tbname; #显示字段的详细信息
#database
create database dbname; #创建db
drop database dbname; #删除db
#table
##建表
create table tbanme(
column_1 type conditions,
column_2 type conditions,
……,
key `column_1_idx` (`column_1`)
)ENGINE=innodb default charset=utf8;
##删表
drop table tbname;
##修改表
alter table test modify ename varchar(20); #ename 字段类型修改为varchar(20)
alter table test add gender tinyint(1) unsigned not null default 0 [first|after ename]; #增加gender字段在ename之前或之后
alter table test drop gender; #删除gender字段
alter table test change old_col_name new_col_name definition #修改字段名(modify不能修改列名)
alter table test rename test_1; #修改表名
#insert
insert into tbname(col1,col2,……)values(val1,val2,……); #insert one
insert into tbname(col1,col2,……)values
(val1,val2,……),
(val1,val2,……),
……
(val1,val2,……); #insert multi
#update
update tbname set col1=val1,col2=val2,……,coln=valn where conditons;
#delete
delete from tbname where conditions;
#select
select * from test;
select distinct ename from test;
select * from test where ename='jim';
#表连接
*表连接分为内连接和外连接。内连接是取查询表中相同的记录。外连接分为左连接和右连接。左连接以左表为主,右连接以右表为主。
select ename,deptname from emp,dept where emp.deptno=dept.deptno; #内连接
select ename,deptname from emp inner join dept on emp.deptno=dept.deptno; #内连接
select ename,deptname from emp left join dept on emp.deptno=dept.deptno; #左连接,左表为主
select ename,deptname from emp right join dept on emp.deptno=dept.deptno; #右连接,右表为主
#联合查询
select deptno from emp union all select deptno frpm dept; #取并集
select deptno from emp union select deptno frpm dept; #取并集,但去重。
#创建一个tom账户,对gocar数据库的所有表只有select/insert权限:
grant select,insert on gocar.* to 'tom'@'localhost' identified by '123456';
#权限变更,回收insert权限:
revoke insert on gocar.* from 'tom'@'localhost';