MySQL之数据库基本操作

数据库基本操作

---------------------------------------------------create---------------------------------------------------

1:创建数据库
/*
	创建数据库
	CREATE DATABASE 表名;
	CREATE DATABASE 数据库名 CHARACTER SET 字符集;
*/
CREATE DATABASE mybase;

2:使用数据库

/*
	使用数据库
	USE 表名;
*/
USE mybase;

3:创建表

/*
	创建数据库表
	create table 表名 (
		列表1  数据类型 约束,
		列表2  数据类型 约束,
		列表3  数据类型 约束,
	);
*/
CREATE TABLE users(
	uid INT PRIMARY KEY AUTO_INCREMENT,
	uname VARCHAR(20),
	uaddress VARCHAR(50)
);

                -------------------------------------------------rename---------------------------------------------------

4:修改表名

/*
	修改表名
	rename table 表名 to 新名;
*/
RENAME TABLE users TO student;

  ---------------------------------------------------alter------------------------------------------------------

5:添加列

/*
	添加表中的列
	alter table 表名 add 列名 数据类型 约束;
*/
ALTER TABLE users ADD utel INT;

6:修改列中数据类型和约束

/*
	修改表中的列的数据类型长度和约束
	alter table 表名 modify 列名 数据类型 约束;
*/
ALTER TABLE users MODIFY utel VARCHAR(10);

7:修改列名

/*
	修改表中的列名
	alter table 表名 change 旧列名 新列名 数据类型 约束;
*/
ALTER TABLE users CHANGE utel tel INT;

8:删除列名

/*
	删除表中列
	alter table 表名 drop 列名;
*/
ALTER TABLE users DROP tel;

---------------------------------------------------insert---------------------------------------------------

9:向表中添加数据

/*
	向表中添加数据
	格式:
	insert into 表名(列名1,列名2,列名3) values(值1,值2,值3);
	或者
	insert into 表名 values(全列值)----主键值也要写
	或者
	insert into 表名(列名1,列名2,列名3) values(值1,值2,值3),(值1,值2,值3)
	注意:
	自增主键,可以列名中不出现主键
*/
INSERT INTO student(uname,uaddress) VALUES('mark','长沙岳麓区');
INSERT INTO student(uname,uaddress) VALUES('jek','长沙天心区'),('tom','长沙芙蓉区');

---------------------------------------------------update--------------------------------------------------

10:对表进行更新数据

/*
	对数据库进行更新操作
	格式:
	update 表名 set 列1=值1,列2=值2 where 条件
*/
UPDATE info SET uname='mark',uaddress='长沙岳麓区' WHERE uid=1;

             ---------------------------------------------------delete---------------------------------------------------

11:对表进行删除数据

delete from 表名 [where 条件];
或者
truncate table 表名;

             ---------------------------------------------------select---------------------------------------------------

12:对表进行查询数据

/*
	查询指定字段信息
	格式:
	SELECT 字段1,字段2,...from 表名;
*/
SELECT uname FROM info;
/*
	distinct用于去除重复记录
	格式:
	SELECT DISTINCT 字段 FROM 表名;
*/
SELECT DISTINCT uname FROM info;

             ----------------------------------------------select....where-----------------------------------------------

比较运算符

<  <=   >=   =  <>

大于、小于、大于(小于)等于、不等于

BETWEEN...AND...

显示在某一区间的值(含头含尾)

IN(set)

显示在in列表中的值,例:in(100,200)

LIKE  通配符

模糊查询,Like语句中有两个通配符:

%用来匹配多个字符;例first_name like ‘a%’;

_用来匹配一个字符。例first_name like ‘a_’;

IS  NULL

判断是否为空

is null; 判断为空

is not null; 判断不为空


AND

多个条件同时成立

OR

多个条件任一成立

NOT

不成立,例: where not (salary >100);
查询所有姓名为mark记录
SELECT * FROM student WHERE name = 'mark';

查询出工资大于5000的信息
SELECT * FROM student WHERE money >5000;

查询出工资在2000-5000之间信息
SELECT * FROM student WHERE money >=2000 AND money <=5000;
或
SELECT * FROM student WHERE money BETWEEN 2000 AND 5000;

查询出工资是1000或5000或3500信息
SELECT * FROM student WHERE money =1000 OR money =5000 OR money =3500;
或
SELECT * FROM student WHERE money IN(1000,5000,3500);

查询出地址名称包含”长沙”的信息。
SELECT * FROM student WHERE name LIKE "%长沙%";

查询出地址名称中是五个字的账务信息
SELECT * FROM student WHERE address LIKE "_____"; -- 五个下划线_

查询出姓名不为null账务信息
SELECT * FROM student WHERE name IS NOT NULL;
SELECT * FROM student WHERE NOT (name IS NULL);

             -------------------------------------------select...order by------------------------------------------------

13:对表中数据进行排序

/*
	order by 用于对指定列排序数据
	格式:
	SELECT 列名 from 表名 where 条件 order by 列名 [desc][asc];
	desc:降序
	asc:升序,默认升序
*/
SELECT uid,uname FROM info WHERE uname = 'mark' ORDER BY uid DESC;

             ---------------------------------------------------as--------------------------------------------------------

14:对表中某列临时改名

/*
	group by 对表中某类别类进行分组
	格式:
	SELECT 列名 from 表名 group by 列名;
*/
SELECT COUNT(uid) AS '所有含有长沙列数',uaddress FROM info WHERE uaddress LIKE '%长沙%' GROUP BY uaddress;

             ----------------------------------------------select...group by--------------------------------------------

15:对表中某一类别分组

/*
	group by 对表中某类别类进行分组
	格式:
	SELECT 列名 from 表名 group by 列名;
*/
SELECT COUNT(uid) AS '所有含有长沙列数',uaddress FROM info WHERE uaddress LIKE '%长沙%' GROUP BY uaddress;

注意:结果集是分组查询后,再次进行筛选,不能使用where,分组后再次过滤,要使用关键词having

             ---------------------------------------------------聚合函数--------------------------------------------------

AVG() 返回某列的平均值
COUNT() 返回某列的行数(不为空)
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某个列之和

猜你喜欢

转载自blog.csdn.net/mmake1994/article/details/80657358