mysql常用语句

一、对数据库的操作

1.创建一个库

-- create database 库名
create database person;

创建带有编码的数据库

-- create database 库名 character set 编码
create database userdb character set utf8;

查看编码

show create database userdb;

2.删除一个库

-- drop database 库名
drop database person;

3.使用库

-- use 库名
use userdb;

4.查看当前正在操作的库

select database();

二、对数据库表的操作

1.创建一张表

-- create table 表名(
-- 字段名 类型(长度) [约束],
-- 字段名 类型(长度) [约束],
-- 字段名 类型(长度) [约束]
-- );
create table uPerson(
uid int(32) primary key auto_increment,
uname varchar(32),
upassword varchar(32),
uscore varchar(32)
);

2.查看数据库表
创建完成后,我们可以查看数据库表

show tables;

查看表的结构

-- desc 表名
desc userdb;

3.删除一张表

-- drop table 表名
drop table userdb;

查看数据库表

show tables;

4.修改表
修改表名

rename table userdb to user_db;

4.1添加一列

-- alter table 表名 add 字段名 类型(长度) [约束]
alter table user_db add uinfo varchar(32)

4.2修改列的类型(长度、约束)

-- alter table 表名 add 字段名 类型(长度) [约束]
alter table user_db modify uinfo varchar(100) null;

4.3修改列的列名

-- alter table 表名 change 旧列名 新列名 类型(长度) [约束]
alter table user_db change uinfo info varchar(32) null;
alter table user_db change upassword upwd varchar(32) null;

4.4删除表的列

-- alter table 表名 drop 列名
alter table user_db drop info;

4.5修改表名

-- rename table 表名 to 表名
rename table user_db to tbl_user;

4.6修改表的字符集

alter table 表名 character set utf8;

查看当前表的编码

show create table tbl_user;

三、对数据库表记录进行操作(修改)

1.插入记录

-- insert into 表名(列名1,列名2,列名3……) values(值1,值2,值3……)
insert into tbl_user(uid,uname,upwd,uscore) values(1,'张王三','12233','65');
insert into tbl_user(uid,uname,upwd,uscore) values(2,'李四','12234','76');
insert into tbl_user(uid,uname,upwd,uscore) values(3,'王五','12235','86');
insert into tbl_user(uid,uname,upwd,uscore) values(4,'赵六','12236','62');
-- insert into 表名 values(值1,值2,值3……)
insert into tbl_user values(5,'王一','1111','91');

1.1 插入数据中文乱码问题解决办法

方式一:创建表的时候直接设置好编码为utf8
方式二:【不建议!】
直接修改数据库安装目录里面的my.ini文件的第57行
方式三:set names gbk;

2.修改表记录

2.1不带条件的-更改表中所有的记录
update 表名 set 字段名=值 ,字段名=值.....
update tbl_user set upwd=123456;
2.2带条件的
update 表名 set 字段名=值,字段名=值..... where 条件
update tbl_user set upwd=1122334 where uid = 2;

3.删除表记录

3.1 带条件的
delete from 表名 where 条件
delete from tbl_user where uid=1
注意,删除后,uid不会重置!
3.2不带条件的
先准备点数据
insert into uperson values (1,'来来来','szs','12');
insert into uperson values (2,'来来来','sys','48');
insert into uperson values (3,'ww1','szt','28');
insert into uperson values (4,'szss','srs','53');
insert into uperson values (5,'来qqq','uos','56');

删除操作

delete from 表名;
delete from uperson;

3.3面试题
说说delete与truncate的区别?
delete删除的时候是一条一条的删除记录,它配合事务,可以将删除的数据找回。
truncate删除,它是将整个表摧毁,然后再创建一张一模一样的表。它删除的数据无法找回。
Delete操作演示:
start transaction ;
delete from uperson;
rollback;
Truncate操作演示
start transaction;
truncate table uperson;
rollback;
show tables;
注意:delete删除,uid不会重置!而使用truncate操作,uid会重置

4.查询操作

语法
select [distinct]*|列名,列名 from 表名 [where 条件]

4.1简单查询
1.查询所有用户

select *from tbl_user;

2.查询名字分数

select uname,uscore from tbl_user;

3.查询名字使用表别名

-- select * from tbl_user as(as可省略) u;
select * from tbl_user as u;

4.查询姓名,使用别名 as可省略

select uname as u from tbl_user;

5.去掉重复值(按照密码)

select distinct(upwd) from tbl_user;

6.将所有人的分数+10 显示

select uid ,uname,uscore+10 from tbl_user;

4.2条件查询
1.查询名称为"王五"的信息

select * from tbl_user where uname='王五';

2.查询分数大于80的信息

select * from tbl_user where uscore>80;

3.查询含有“王” 字的信息

select * from tbl_user where uname like '%王%';

4.查询id在(3,5)范围的信息

select * from tbl_user where uid in(3,5);

5.查询含有“王” 并且id为5 的信息

select * from tbl_user where uname like '%王%' and uid=5;

6.查询uid 为2或者5的信息

select * from tbl_user where uid =2 or uid =5;

4.3排序
1.查询所用用户 按照分数(升序降序)

-- 升序 select * from 表名 order by 要升序的列名 asc;
select * from tbl_user order by uscore asc;
-- 降序 select * from 表名 order by 要降序的列名 desc;
select * from tbl_user order by uscore desc;

2.查询带“王”字的用户 并按照分数降序排序

select * from tbl_user where uname like '%王%' order by uscore desc;

4.4聚合函数
1.获得所有学生分数的总和

select sum(uscore) from tbl_user;

2.获得所有学生分数的平均数

select avg(uscore) from tbl_user;

3.获得所有学生的个数

select count(*) from tbl_user;

4.5分组操作
1. 更具uid 分组

select uid ,count(*) from tbl_user group by uid;

2.更具cid分组,统计每组的分数值

select cid,avg(uscore) from tbl_user group by uscore having avg(uscore)>>70;

4.6 查询总结

select 一般在的后面的内容都是要查询的字段
from 要查询到表
where
group by
having 分组后带有条件只能使用having
order by 它必须放到最后面

select * from tbl_user;

select * from uperson;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 229,460评论 6 538
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,067评论 3 423
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 177,467评论 0 382
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,468评论 1 316
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,184评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,582评论 1 325
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,616评论 3 444
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,794评论 0 289
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,343评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,096评论 3 356
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,291评论 1 371
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,863评论 5 362
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,513评论 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,941评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,190评论 1 291
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,026评论 3 396
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,253评论 2 375

推荐阅读更多精彩内容