MySQL 总结

一、命令行操作MySQL
  • 启动命令行

    快捷键:win+R 弹出运行框,在“运行”框中输入 cmd 回车

  • DOS命令

    盘符+冒号 切换逻辑盘 如:d:
    dir 显示目录和文件列表
    cd 目录名 进入目录
    cd ../ 进入上一级目录
    cd ./ 进入当前目录
    cd / 进入根目录
    exit 退出命令行
    注意:如果提示符是逻辑盘符,说明正在DOS命令行下,只能使用DOS命令
    按上方向键 可以把之前写过的命令显示出来

  • 连接数据库

    语法:mysql -h主机名 -u用户名 -p密码
    如:mysql -hlocalhost -uroot -proot
    注意:当提示符变成 mysql> 说明我们已经进入mysql命令行模式,只能使用sql指令
    sql指令都需要以分号 ; 结束
    quit 退出mysql
    exit 退出命令行


二、数据库操作

sql指令都需要以分号 ; 结束

注意:反引号 可以加在 数据库名、数据表名、字段名 上面,不能加在值上面。
注意:关于 数据库名、数据表名、字段名 的大小写问题,是否区分取决于当前的文件系统,windows不区分,linux区分,实际使用中请严格区分大小写。

  • 创建数据库
    create database 数据库名;

  • 显示数据库
    show databases; 显示服务器上的所有数据库列表

    show databases like '%a%'; like 子命令,显示所有名字里带a的数据库名
    show databases like '___'; like 子命令,显示数据库名是三个字符的所有数据库名
    % 匹配0个或者多个任意字符,_ 下划线,匹配任意一个字符

    show create database 数据库名; 查看建立数据库的语句

  • 修改数据库
    alter database 数据库名 charset=gbk; 修改指定的数据库的字符集,只能修改数据的字符集,数据库名不能修改。

  • 删除数据库
    drop database 数据库名; 删除指定的数据库

  • 设置默认数据库
    use 数据库名;
    MySQL里面的三个数据库mysql、information_schema、performance_schema是系统默认自带的,不可删除,删了需重装MySQL


三、数据表操作

MySQL安装目录下,存储数据的目录data,数据库存储在对应的文件夹中,db.opt文件是数据库的设置。表名.frm是数据表的结构。
如果数据库引擎是MyISAM时,在目录data中数据库名目录里,有表名.MYD表名.MYI文件。表名.MYD是数据表的数据,表名.MYI是数据表的索引。
如果数据库引擎是InnoDB时,数据和索引都存在目录data下的ibdata1

  • 创建数据表

    create table 表名(
    字段名 字段类型 字段属性,
    字段名2 字段类型2 字段属性2,
    字段名3 字段类型3 字段属性3,
    ...
    );
    

    create table 表名(id int,username varchar(30),password varchar(30));

  • 查看表
    show tables; 查看所有的数据表
    show create table 表名; 查看数据表的建表语句
    desc 表名; 查看数据表的结构

  • 删除表
    drop table 表名; 查看数据表的结构

  • 修改表
    alter table 表名 engine=innodb; 可以修改默认引擎
    alter table 表名 charset=gbk; 可以修改字符集
    rename table 表名 to 另一个表名; 可以修改表名


四、字段的操作
  • 增加新字段
    alter table student add column gender varchar(2);
    在student数据表中新增gender字段
  • 修改字段类型和属性
    alter table student modify column gender varchar(10);
    修改student数据表中gender字段数据类型
    alter table student modify column gender varchar(10) after 另一个字段;
    修改student数据表中gender字段数据类型,并且在数据表中排在 “另一个字段” 后面
    alter table student modify column gender varchar(10) first;
    修改student数据表中gender字段数据类型,并且在数据表中排在第一位
  • 修改字段的名字和定义
    alter table student change column gender sex varchar(2);
    把student数据表中gender字段名字改为sex,数据类型改为varchar(2)
  • 删除字段
    alter table student drop column gender;
    删除student数据表中的gender字段

五、记录的操作 (重点)
  • 新增记录
    insert into 表名(字段列表) values (值的列表);
    例子:
    insert into student(username) values('中文');
    insert into student(id,username,age) values(3,'中文',20);
    批量新增
    insert into student(id,username,age) values (3,'张三',18),(4,'李四',20),(5,'刘五',22);
    值的个数与数据表中的字段个数一样时,可以省略字段列表
    insert into student values(4,'中文',20);

  • 查询记录
    完整语句:
    select [字段列表] [from子句] [inner join子句] [where子句] [group by子句] [baving子句] [order by子句] [limit子句];
    一般使用:
    select [字段列表] [from子句] [where子句] [order by子句] [limit子句];

[字段列表] : 字段1,字段2,字段3…
* : 通配符,匹配所有字段
例子:
select username from student; 从student表中查询所有的username
select username,age from student; 从student表中查询所有的username和age
select * from student; 从student表中查询所有记录的字段

[from子句] 用于为select 语句提供数据源
1 个表 : 将这个表设置为数据的来源表
多个表 : 联表查询
还可以为表格指定别名
例子:
select * from student; 从student表中查询出所有数据
select * from student s; 指定别名为 s
select * from student,classes; 从student表和classes表中获取数据

[where子句] 用于过滤数据,只取出满足条件的记录
select * from student where age >= 20; 查询出 age >= 20的记录

[order by子句] 用于对查询出的数据进行排序
select * from student where age >= 20 order by age asc; 年龄升序排列

asc升序排列 (从小到大)、desc 降序排序 (从大到小)

[limit子句] 用于限制输出数据的条数
limit n; 提取前 n 条数据
limit m,n; 从 m 条开始提取 n 条数据**(m 从 0 开始)**
select * from student where age >= 20 order by age asc limit 2; 查询出 age >= 20的记录年龄,升序排列,提取前 2 条

  • 修改记录
    update 表名 set 字段名1=新的值1,字段名2=新的值2,字段名n=新的值n where 子句;
    例子:
    update student set age=25 where id=8;
  • 删除记录
    delete from 表名 where 子句;
    例子:
    delete from student where id=8;

六、MySQL 数据类型

在 MySQL 中,有三种主要的类型:数字、文本和日期/时间类型。
mysql中常用数据类型

数据类型描述
INT(size)4字节整数类型,-2147483648 到 2147483647 常规。0 到 4294967295 无符号*。在括号中规定最大位数,默认是11。
BIGINT(size)8字节整数类型,-9223372036854775808 到 9223372036854775807 常规。0 到 18446744073709551615 无符号*。在括号中规定最大位数。默认是20。
FLOAT(size,d)4字节浮点数,带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。
CHAR(size)保存固定长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的长度。最多 255 个字符。
VARCHAR(size)保存可变长度的字符串(可包含字母、数字以及特殊字符)。在括号中指定字符串的最大长度。最多 255 个字符。注释:如果值的长度大于 255,则被转换为 TEXT 类型。
TEXT存放最大长度为 65,535 个字符的字符串。
DATE()日期。格式:YYYY-MM-DD 注释:支持的范围是从 ‘1000-01-01’ 到 ‘9999-12-31’
DATETIME()*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’
TIMESTAMP()*时间戳。TIMESTAMP 值使用 Unix 纪元(‘1970-01-01 00:00:00’ UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS 注释:支持的范围是从 ‘1970-01-01 00:00:01’ UTC 到 ‘2038-01-09 03:14:07’ UTC

* 这些整数类型拥有额外的选项 UNSIGNED。通常,整数可以是负数或正数。如果添加 UNSIGNED 属性,那么范围将从 0 开始,而不是某个负数。
* 即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在 INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如 YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD。

参考自:w3school SQL 数据类型
http://www.w3school.com.cn/sql/sql_datatypes.asp

字段属性用于对字段进行修饰(允许字段设置附加属性)
null属性
null (默认)允许字段为空
not null 不允许字段写为空值
create table 表名(username varchar(30) not null);

default属性
设置字段的默认值,当插入新数据时,如果没有为该字段赋值,自动使用默认值。
create table 表名(username varchar(30) default '匿名');

在插入数据时使用,将强制使用默认值
insert into 表名 values(default);

特殊的默认值
timestamp 时间戳类型,默认值是: current_timestamp on update current_timestamp
时间戳的常用写法:
create table 表名(date timestamp default current_timestamp);

primary key属性
主键也叫主索引,通常用于修饰数据标识(ID字段)
特性:1、一个表中只允许有一个主键;2、主键修饰的字段的值不能重复;3、值不能为null。
create table 表名(id int primary key auto_increment,username varchar(20));

insert into 表名 values(null,'名字');

auto_increment属性 自动增长
通常和主键一起使用,让 ID 实现自动增长,添加数据时不管ID值

unique属性 约束唯一(字段的值不能重复)

请注意,每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。


七、其他项

导出数据库
1、在DOS命令行下
2、执行mysqldump.exe
mysqldump -u用户名 -p密码 数据库名 > 导出的地址和文件名
mysqldump -uroot -proot student > e:\student.sql
导入数据库
1、进入mysql命令行模式
2、use student;
3、source sql文件路径
source e:/student.sql;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值