1、启动数据库:net start mysql
2、登陆数据库
mysql [-h主机地址(客户端和服务器在同一台机器上,因此输入localhost或IP地址127.0.0.1都可以,如果本地登陆可以省略登此参数)] -u用户名(一般为是root) -p密码
3、查看所有数据库:show databases;
4、使用某数据库:use 数据库名;
5、创建数据库(如果没有重名数据库存在):create table [if not exists] 数据库名;
6、查看数据库内的表
show tables;(此方法需要使用某个数据库后)
7、创建数据表
create table [if not exists] `表名`(
`列名1` 列类型 [属性][索引][注释],
`列名2` 列类型 [属性][索引][注释],
... ...
`列名n` 列类型 [属性][索引][注释]
)[表类型][表字符集][注释]
注:a、` `:如果名字是关键字,需要用` `引起来
b、列类型:规定数据库中该列数据类型,常用类型如下:
数值类型:
tinyint:非常小的数据 int:标准整数 double:双精度浮点数
decimal:字符串形式的浮点数,decimal(m,d)数值一共m位,小数后有d位,用于货币
字符串类型:
text:文本串 char:固定长字符串长度 varchar:可变字符串
日期和时间型数值类型:
datetime:日期值YY-MM-DD h:m:s time:时间值HH:MM:SS
Null值:没有值
unique key:防止数据插入的时候重复
unsigned:无符号,声明该数据列不允许有负数
zerofill:0填充,不足位数的用0来填充
auto_increment:自动增长的,每添加一条数据,自动在上一个记录数上加1;通常用于设置主键(唯一,区别),且为整数类型;
auto_increment=自增列的初始值(改变当前表的初始值);
set @@auto_increment_increment=步长(改变所有包含自增列的数据表的步长)
Null:没有插入该列数值
not null:该列必须有值
default 默认的值:设置默认值
primary key:创建主键 或 命令行用add primary key命令添加主键
d、注释e、表类型
常用MyISAM和InnoDB
查看mysql所支持的引擎类型(表类型):show engines
查看默认引擎:show variables like ‘storage_engine’
写入格式:engine=innodb(创建表时一般用innodb)f、表字符集
default charset=utf8/gbk...:设置表的字符集
如果字段名/列名为汉字需要将表的字符集设为gbk
8、查看及更改输出窗口使用的字符编码:
Show variables like ‘char%’;查看输出窗口使用的字符编码
从上图可以看出Mysql中有六处字符集,其中database、server、system(永远无法修改)三处与服务器端相关;其他与客户端相关,client:客户端使用的字符集,connection:连接数据库的字符集设置类型,results:数据库给客户端返回时使用的字符集
Set character_set_results=gbk;在操作系统是中文操作系统时,默认的字符集是gbk,因此将输出窗口使用的字符编码改成gbk可正常显示中文
insert into 表名(列名) values(列名对应的数据);:插入数据
insert into 表名(列名) values(列名对应的数据1),(列名对应的数据2)...;:插入多个数据
insert into 表名1(列名) select (表2中加到表1的数据的列名) from 表2;:将表2中某列的数据加到表1中
10、将数据表中的数据删除(删)
delete from 表名 where 筛选条件(可用and添加多个筛选条件;如果不加筛选条件,会将数据表中的数据清空)
truncate table 表名;---将数据表清空到最初建表的样式
11、将数据表中的数据进行修改(改)
update 表名 set 字段名=”修改的内容” [where 筛选条件];
update A set A.列=(select B.列 from B where A.关联列=B.关联列);---将一个表的一列值替换成另一个表的一列值
12、查询表内所有记录:
desc 表名;(查看表的结构)
select * from 表名 [where 筛选条件];
select * from 表名\G;---以一定格式展示表里的所有查询记录
select * from 数据库名.表名;---可以在不使用该数据库情况下查看数据库里的内容
select * from 表名 limit [读取数据的起始位置,]数量;---分页查询
select 列名 from 表名1 union select 列名 from 表名2; ---将两个表中数据类型一样的列1和列2拼接成一列,并把重复的数据去除
select 列名 from 表名1 union all select 列名 from 表名2;---将两个表中数据类型一样的列1和列2拼接成一列,但把重复的数据保留
select 列名 from 表1 left join 表2 on 表1.关系字段=表2.关系字段;---连表查询,但表1中与表2,关系字段为空时,仍然显示
select 列名 from 表1,表2 where 表1.关系字段=表2.关系字段;---连表查询,但表1中与表2 关系字段为空时,仍然显示
select 列名 from 表1 inner join 表2 on 表1.关系字段=表2.关系字段;---连表查询,但表1中与表2 关系字段为空时,不会显示
select 列名 as 新名字 from 表名;---在查询时给列重命名
select 列名 from 表 order by 列名 [asc];---将列从小到大排序
select 列名 from 表 order by 列名 desc;---将列从大到小排序
select 列名 from 表 order by 列1 asc,列2 desc;---根据列1从小到大排序,如果相同按列2从大到小排序
13、聚合函数
select count(字段名) from 表名 [where 筛选条件];---查看行数
select distinct 字段名 from 表名 [where 筛选条件];---去掉重复数据
select max(字段名) from 表名 [where 筛选条件];---查看最大值
select min(字段名) from 表名 [where 筛选条件];---查看最小值
select avg(字段名) from 表名 [where 筛选条件];---查看平均值
select sum(字段名) from 表名 [where 筛选条件];---查看该字段的和
14、分组:
select [字段名,]聚合函数(字段名) [as 新的字段名] from 表名 group by 字段名;
例:select gender,count(stname) as n from stu_info group by gender;
15、修改数据表
alter table 表名 rename to 新表名;---修改表名
alter table 表名 change 列名 新的列名 数据类型;---修改表字段的字段名
alter table 表名 modify 列名 新的数据类型;---修改表字段的数据类型或属性
alter table add 字段名 数据类型 [属性];---添加新的字段
alter table drop 字段名 数据类型 [属性];---删除字段
注: 1、文章内中括号([])内的内容可不写。
2、表中的所有列可用*表示,但最好不要用,而是把所有列名都写一遍。