学习笔记01(MySQL)
2017-11-23 21:11
309 查看
开启 MySQL服务
net start mysql;
登录
mysql -u root -p1122
数据定义语言DDL
数据操作语言DML
数据查询语言DQL
库操作
新建数据库带编码方式
create database web08 character utf-8;
显示已存在的数据库
show databases;
查看编码
show create database web08;
删除数据库
drop database web08-08;
show databases;
使用特定数据库
use web08;
表操作
查看当前使用的表
select database();
新建表
create table user(
uid int(10) primary key auto_increment,
uname varchar(30),
uage varchar(6)
);
主键约束:primary key 要求被修饰的字段:唯一和非空
唯一约束:unique 要求被修饰的字段:唯一
非空约束:not null 要求被修饰的字段:非空
查看表
show tables;
查看表结构
Desc user;
删除表
drop table user;
修改表
1.添加一列alter table 表名 add 字段名 类型(长度)[约束]
alter table user add uage varchar(10) not null;
2,修改列类型(长度,约束)
alter table 表名 nodify 要修改的字段名 类型(长度) [约束]
alter table user nodify uage varchar(4) null;
3.修改列名
Alter table 表名 change 旧列名 新列名 类型(长度) [约束]
alter table user change uage age varchar(4) not null;
4.删除列
alter table 表名 drop 列名;
alter table user drop uage;
5.修改表名
rename table 表名 to 新表名;
6.修改表的字符集
先查看 show create table 表名
alter table 表名 character set 编码
记录操作
插入记录 insert
(字符型或日期要加引号' ')
insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
insert into user(uid,uname,uage) values(null,'张三','21');
中文乱码处理
1.修改MySQL安装目录下的my.ini文件的下面行:default-character-set=utf8;
2.set names gbk;
更改记录
update 表名 set 字段名=值,字段名=值,字段名=值;
update user set uname='李四';(将该列的所有记录都更改)
update user set uname='李四' where uid=1;
删除记录
delete from 表名 where 条件;
delete from user where uid=1;
(删除后,uid不会重置)
delete与truncate的区别?
delete是一条一条删除,可以将数据找回
将该列的所有记录都更改
操作如下:start transaction;
delete from user;
select * from user;
rollback;
select * from user;
truncate是摧毁表,然后新建一个一模一样的表,但数据不能恢复。
操作如下:
start transaction;
truncate table user;
select * from user;
rollback;
select * from user;
查询操作
select [distinct] *|列名 from 表名 where 条件;
select * from user;
select uid from user;
select * from user as p; (使用表别名)
select uname as name from user ;(使用列别名)
select distinct(uname) from user;(去除重复记录)
select uage+10 from user;(所有年龄加10)
条件查询
where后的条件写法:
>,<,=,>=,<=,<>
like使用占位符_和%(_代表一个字符,%代表任一个字符)
select * from user where uname like '%三%';
in在某个范围中获取值
select * from user where uid in(3,6,9);
AND OR NOT
where not(uid>5)
排序
select * from user order by uage desc;(降序)
select * from user order by uage asc;(升序)
select * from user uname='%三%' order by uage desc;
聚合函数
sum()
select sum(uage) from user;
avg()
select avg(uage) from user;
count()
select count(*) from user;
分组
1,添加alter table user add usex varchar(4);
2.初始化数据 update user set usex='男';
update user set usex='女' where uid in (3,6,7);
例:根据usex字段分组,分组后统计每个的个数。
select usex,count(*) from user group by usex;
例:根据usex字段分组,分组统计每组的平均年龄,并且平均年龄大于25。
select avg(uage) from user group by usex having avg(uage)>25;
查询总结
select--from--where--group by-- having(分组后带有条件只能使用having)-- order by(最后边)
net start mysql;
登录
mysql -u root -p1122
数据定义语言DDL
数据操作语言DML
数据查询语言DQL
库操作
新建数据库带编码方式
create database web08 character utf-8;
显示已存在的数据库
show databases;
查看编码
show create database web08;
删除数据库
drop database web08-08;
show databases;
使用特定数据库
use web08;
表操作
查看当前使用的表
select database();
新建表
create table user(
uid int(10) primary key auto_increment,
uname varchar(30),
uage varchar(6)
);
主键约束:primary key 要求被修饰的字段:唯一和非空
唯一约束:unique 要求被修饰的字段:唯一
非空约束:not null 要求被修饰的字段:非空
查看表
show tables;
查看表结构
Desc user;
删除表
drop table user;
修改表
1.添加一列alter table 表名 add 字段名 类型(长度)[约束]
alter table user add uage varchar(10) not null;
2,修改列类型(长度,约束)
alter table 表名 nodify 要修改的字段名 类型(长度) [约束]
alter table user nodify uage varchar(4) null;
3.修改列名
Alter table 表名 change 旧列名 新列名 类型(长度) [约束]
alter table user change uage age varchar(4) not null;
4.删除列
alter table 表名 drop 列名;
alter table user drop uage;
5.修改表名
rename table 表名 to 新表名;
6.修改表的字符集
先查看 show create table 表名
alter table 表名 character set 编码
记录操作
插入记录 insert
(字符型或日期要加引号' ')
insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
insert into user(uid,uname,uage) values(null,'张三','21');
中文乱码处理
1.修改MySQL安装目录下的my.ini文件的下面行:default-character-set=utf8;
2.set names gbk;
更改记录
update 表名 set 字段名=值,字段名=值,字段名=值;
update user set uname='李四';(将该列的所有记录都更改)
update user set uname='李四' where uid=1;
删除记录
delete from 表名 where 条件;
delete from user where uid=1;
(删除后,uid不会重置)
delete与truncate的区别?
delete是一条一条删除,可以将数据找回
将该列的所有记录都更改
操作如下:start transaction;
delete from user;
select * from user;
rollback;
select * from user;
truncate是摧毁表,然后新建一个一模一样的表,但数据不能恢复。
操作如下:
start transaction;
truncate table user;
select * from user;
rollback;
select * from user;
查询操作
select [distinct] *|列名 from 表名 where 条件;
select * from user;
select uid from user;
select * from user as p; (使用表别名)
select uname as name from user ;(使用列别名)
select distinct(uname) from user;(去除重复记录)
select uage+10 from user;(所有年龄加10)
条件查询
where后的条件写法:
>,<,=,>=,<=,<>
like使用占位符_和%(_代表一个字符,%代表任一个字符)
select * from user where uname like '%三%';
in在某个范围中获取值
select * from user where uid in(3,6,9);
AND OR NOT
where not(uid>5)
排序
select * from user order by uage desc;(降序)
select * from user order by uage asc;(升序)
select * from user uname='%三%' order by uage desc;
聚合函数
sum()
select sum(uage) from user;
avg()
select avg(uage) from user;
count()
select count(*) from user;
分组
1,添加alter table user add usex varchar(4);
2.初始化数据 update user set usex='男';
update user set usex='女' where uid in (3,6,7);
例:根据usex字段分组,分组后统计每个的个数。
select usex,count(*) from user group by usex;
例:根据usex字段分组,分组统计每组的平均年龄,并且平均年龄大于25。
select avg(uage) from user group by usex having avg(uage)>25;
查询总结
select--from--where--group by-- having(分组后带有条件只能使用having)-- order by(最后边)
相关文章推荐
- MySQL学习笔记_01
- MySQL学习笔记_01_MySQL中char和varchar的本质区别
- 【数据库学习笔记】MySQL_01_概述,操作库,操作表,管理数据
- MySql学习笔记_01_安装、建表
- MySQL CookBook 学习笔记-01
- MySQL CookBook 学习笔记-01
- 关于mysql的sql语句的汇总(学习笔记)01
- Mysql 数据库学习笔记01查询
- mysql 学习笔记_01
- day04_MySQL学习笔记_01
- 0042 MySQL学习笔记-入门--01
- MySQL学习笔记(2)
- MySQL学习笔记七:存储引擎
- PyQt5学习笔记01----第一个窗口
- Mysql基础学习笔记
- MySQL学习笔记(二):MySQL数据类型汇总及选择参考
- mysql的学习笔记
- BackBone 学习笔记 01
- mysql学习笔记
- 学习笔记:MySQL基准测试之BENCHMARK()和mysqlslap