Mysql 简单操作

## 创建数据库: create database 数据库名;
查看有哪些数据库: show databases;
使用数据库: use 数据库名;
删除数据库:	drop database 数据库名;

##创建表的操作。
create table 表名(
	字段名 数据类型(长度) [约束],
	字段名 数据类型(长度) [约束],
	字段名 数据类型(长度) [约束]
);
字段名其实就是列名
常用的数据类型。
int  整数
double  小数
varchar  字符串(可变字符)
date 日期,只有年月日,没有时分秒。
注意:常用的数据类型中,varchar必须指定长度,其他的可以不指定。
[约束] 是可选的。可以加,也可以不加。
每一个字段都可以有约束。
主键约束:primary key。 被主键约束的列,不能为空,并且不能出现重复的值。

## 查看表
查看该数据库下一共有哪些表。
show tables;
查看表的详情。可以查看到表结构的一些信息。
desc 表名;
删除表。
drop table 表名;

## 删除语句:
delete from 表名;   会把所有的数据都给删除。
如果想要删除指定的,可以使用条件进行筛选
delete from 表名 where 条件;	
另一个删除
truncate table 表名;   删除表中的所有数据

区别:
truncate 删除
TRUNCATE TABLE 表名; --删除表中所有的数据,使用的方式是先直接摧毁整个表,然后重新创建一个新的空表。 会清除自增长的序列。
delete from 表名 删除
DELETE FROM 表名; – 删除表中所有的数据,逐条删除,一条一条的删 不会清除自增长的序列

##添加数据:
(1) 全列添加。
# insert into 表名 (列1,列2,列3) values (值1,值2,值3);
# 列和值一定要严格对应.
# 如果是varchar不能超过长度。
# 在数据库语句中,如果不是数值类型,请使用单引号包裹(双引号也可以,但是不推荐)。
# 在数据表中要表示这个数据是空,可以使用NULL
(2) 指定列添加
# insert into 表名 (列1,列3) values (值1,值3);
(3) 全列值添加。
# insert into 表名 values (值1, 值2, 值3);
# values后面的值必须是所有列的值。
(4) 批量添加
insert into 表名 values (值1, 值2, 值3),(值1, 值2, 值3),…(值1, 值2, 值3);
(5) 添加
insert into 表名 values (值1, 值2, 值3);

##数据表的修改操作(更新操作):
update 表名 set 列=值,列=值 where 条件;
where条件用作筛选。可以省略。如果省略,会修改所有的数据。

##对数据表结构修改的语句:
(1)添加列:
alter table 表名 add 列名 数据类型(长度) [约束];
(2)修改列的类型长度及约束:
alter table 表名 modify 列名 数据类型(长度) [约束];
(3)修改列名。也可以把列的类型约束进行修改:
alter table 表名 change 旧列名 新列名 数据类型(长度) [约束];
(4)删除列
alter table 表名 drop 列名;
(5)修改表名
rename table 表名 to 新表名;
(6)修改表的字符集
alter table 表名 character set 字符集;

##数据的查询语句:
基本的查询
select 列名,列名 from 表名;
如果要查询所有的列。可以使用 *
select * from 表名;
数据表的条件查询:
运算符:用作条件的筛选。
> < >= <= = != <>
between … and …:在区间范围内。比如 between 1 and 10。代表1-10之间。包含头也包含尾。
in(…): 包含其中之一。 比如in(1,3,5)。只要包含1,3,5其中之一就可以。
like:用作模糊查询。
%:0个或1个或多个任意字符。
_:1个任意字符。
IS NULL:判断是否为空。

AND:与,相当于java中的&。必须所有条件全部满足。
OR: 或,相当于java中的|。 满足一个条件就可以。
NOT: 非。 相当于java中的!.取反

##条件查询的格式:
select 列名 from 表名 where 条件;

##模糊查询:
like 结合通配符去使用
% 代表0个或1个或多个任意的字符
_ 代表1个任意字符
举例:
查询第二个字为’想’的所有商品
SELECT * FROM product WHERE pname LIKE ‘_想%’;

查询三个字的商品
SELECT * FROM product WHERE pname LIKE ‘___’;

(1)别名查询:
指的是查询完成之后给这个列重新起一个名字
select 列名 as 别名 from 表名

as可以省略
select 列名 别名 from 表名;

也可以给多个列都起别名
SELECT 列名 AS 别名,列名 AS 别名 FROM 表名;

表也可以起别名 。多表联合查询使用。现在看不出效果
select * from 表名 as 别名
as 也可以省略

(2)去重(distinct):
SELECT DISTINCT 列名 FROM 表名;
举例:
代表要对price这个列进行去重
SELECT DISTINCT price FROM product;

##多表查询:
内连接查询。
隐式内连接:
select * from 表A, 表B where 条件;
显式内连接:
select * from 表A inner join 表B on 条件;
一定要加条件,否则会产生笛卡尔积.
多表查询中,字段前面要加表名,代表是这个表中的字段。
表名.列名;
只会查询关联的数据

##外链接查询
左外连接:
select * from 表A left outer join 表B on 条件;
会查询左表中所有的数据。右表只会查询关联的数据.
右外连接
select * from 表A right outer join 表B on 条件;
查询右边表中的所有数据,左表只会查询关联的数据 outer也可以省略
子查询
一个select的查询结果作为另一个select的一部分出现。(条件,另一张表出现)

##分页查询:
limit m,n
m: 指的是从第几条数据开始显示(mysql从0开始数)
n: 指的是每页显示多少条数据。
公式 : m = (当前页数 - 1) * 每页显示多少条数据

猜你喜欢

转载自blog.csdn.net/WooyogHAenL/article/details/84334111