show databases; # 查看有哪些数据库
show databases \G # 以行的方式显示
mysql -e “show databases;” -uroot -p123456 # -e参数可以在linux命令行对数据库直接操作
mysqlshow -uroot -p123456 # 可以直接查看有哪些数据库
create database data; # 创建数据库data
ls /var/lib/mysql # 数据库存放位置
use data # 使用数据库data
select database(); # 查看当前在哪个数据库中
select now(),user(),database(); # now显示当前时间,user显示当前用户,database显示所在数据库
drop database guotao; # 删除数据库
mkdir /var/lib/mysql/guotao # 也可以创建数据库 同样删除操作也是
drop database if exists data; # 如果存在data数据库,就删除
if exists # 如果存在
create database if not exists data; # 如果不存在就创建
创建表的语法:create table 表名 (字段名 类型,字段名 类型,字段名 类型);
create table stu(id int,name char(40),class int(10)); # 创建一个stu表,字段为id、name、class。
show tables; # 查看数据库中有哪些表
desc 表名 # 查看表结构:desc stu;
show create table stu\G # 查看在创建表时用了哪些命令
创建表时,可以指定默认存储引擎和字符集
create table student(id int(20),name char(40),age int)ENGINE=MyISAM DEFAULT CHARSET=utf8; # 创建student表,指定默认存储引擎为MyLSAM,字符集是:utf8
drop table 表名; # 删除表
mysql -uroot -p123456 -A # 取消登录提示信息
alter table stu rename student1; # 修改stu表名称为student1
修改字段类型:alter table 表名 modify 要修改的字段名 修改后的字段类型;
alter table student1 modify id int(20); # 将表中id字段改为int(21)型。
修改表中的字段类型及名称:
语法:alter table 表名 change 原字段名 新字段名 新字段类型;
alter table student1 change class home char(20); # 将student1表中的class字段改名为home,并将类型改为char(20)
向表中添加字段:语法:alter table 表名 add 字段名 字段类型;
alter table student1 add jy char(20); # 向表student中添加字段jy类型为char(20);
alter table students add sex enum(‘M’,‘W’); # 向表中添加字段sex只允许插入W或M(enum :限定条件)
向表中的第一列添加字段:alter table students add uid int(10) first; # first代表第一行
在指定的字段后增加一个字段:
alter table student1 add address char(40) after age; # 在表中的age的之后插入一个字段。
删除表中字段:
alter table student1 drop address; # 将表中的address字段删除
向表中插入一个字段(记录)
insert into 表名values(字段值1,字段值2, 字段值3);
insert into student1 values(1,1,‘zhangsan’,‘bj’,‘jy’);
向表中插入多条数据:
insert into student1 values(3,3,‘wangwu’,‘j’,‘jy’),(2,2,‘lisi’,‘bj’,‘jy’); # 每条数据用逗号隔开
insert into student1 (id,name)values(5,‘zhaoliu’); # 只向id和name字段插入数据
查询表中记录:
select * from student1; # 查询student表中的所有数据,*表示所有
只查询表中某个字段的内容:
select name from student1; # 查询表中name字段的内容
select id,name from student1; # 查询表中id和name字段的内容
查看别的数据库的表或者不在本数据库上进行查看:
语法:SELECT 字段 FROM 数据库名.表名;
select id,name from data.student1; # 查看data数据库中的student1表中id和name字段
删除记录:
delete from student1 where id=3; # 删除id为3的行
delete from student1 where uid is null; # 删除uid为空的行
更新数据:
update
语法:update 表名 set 字段=要改变的值 where 定位条件=值
例如:将id=2的sex改为W
update student1 set sex=‘M’ where id=2;
update students set id=2; # student1表中的id字段的值都改成2
查询:
语法:select 字段名1,字段名2 from 表名 [where 条件]; # 条件一般不加
select name,home from student1; # 查询student1表中的name和home字段中的数据
去重查询:distinct
select distinct name,home from student1; # 查询表中的字段重复的不显示
select distinct id,name from student1 where id=3; # 查询表中的字段重复的不显示限定id=3。
or(或)and(与)如果and和or同时存在就先执行and
select id,name from student1 where id>3 and uid>5; # 查询表中id、name字段限制条件为id>3和uid>5
select id,name from student1 where id>3 and uid>5; # 查询表中id、name字段限制条件为id>3或uid>5
MYSQL区分大小写查询:
Mysql查询默认是不区分大小写的
如果要强制区分大小写,在查询时加binary即可
select * from students where binary name=‘jk’; # 这样区分了大小写了
MySQL查询排序:
语法:select distinct 字段1,字段2 from 表名order by 字段名;
默认为升序 asc
select distinct id from student1 order by id asc; # 这样就为升序排序了
select distinct id from student1 order by id desc; # 这样就是反向排序了
转载请标明出处!!!!!!!!