MySQL 基础
1.安装默认端口号:3306
2. cmd里login: mysql -uroot -proot123 # -u 用户名, -p 密码, -V:输出版本信息并退出, -h 主机地址,如mysql -h127.0.0.1 -uroot -proot123
3. 安装目录结构:
- bin目录: 存储一些可执行文件,如mysql.exe
- include目录: 用于存储包含的一些头文件
- lib目录:库文件
- share目录:存储错误信息,字符集文件等
- Data目录 :放置一些日志文件以及数据库
- Uploads 目录:存放导入导出文件
- my.ini文件:配置文件,两部分:client section 和server section, 包含端口号,安装目录,data目录,编码方式
4. 启动,关闭:可以在services里把服务停止,也可以用命令:net start/stop mysql57
5. 退出命令:exit 或quit 或-q
6. 常用命令:
- 修改用户密码:mysqladmin -u用户名 -p旧密码 password,然后输入新密码
- 显示数据库: show databases
- 使用数据库:use < 数据库名称>
- 显示当前连接或选择的信息
- select database(); #显示当前连接的数据库
- select version(); #显示当前服务器版本
- select now(); #显示当前日期时间
- select user(); #显示当前用户
- show variables like 'character%'; #显示编码格式
7. 操作数据库:
- 创建数据库:CREATE DATABASE [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name; 如create database if not exists test1 character set utf8;
- 修改数据库: alter database test2 character set latin1;
- 删除数据库:drop database [if exists] db_name;
8. 创建数据库表:
create database book;
use book;
create table reader(
cardID char(18),
name varchar(10),
sex enum('男', '女'),
age tinyint,
phone char(11),
balance decimal(7,3)
);
show tables from book;
9. 查看数据库表:
show columns from reader; #查看reader表
desc reader; #查看reader表
show create table reader; #显示详细的表的结构
10. 修改数据库表:
alter table reader add email varchar(30);
desc reader;
alter table reader add email varchar(30) after phone; #添加列email在phone 列后
alter table reader change email email2_bak varchar(30); #修改列名
alter table reader modify email varchar(25); #修改列的数据类型
alter table reader modify balance decimal (7, 3) after email; #修改移动列
alter table reader drop email_bak; #删除列
alter table reader rename to readerinfo; #修改表名
11. 删除数据库表:
drop table [if exists] 表1, 表2,...表n; #可以一次删除一个或多个没有被其它表关联的表
drop table if exists t3,t4; #t3没有,t4有,执行的话有if exists会把错误信息隐藏,如果没有if exists,会提示错误t3找不到,但是t4还是会删除.
12.表分区:

show plugins; #查看数据库是否支持表分区, 找partition,如果是active,则表示支持表分区

select * from bookinfo partition(p1); #只查看指定分区的数据
13. 约束:
- 非空约束:
![]()
#删除非空约束
- 主键约束:要求主键列的数据唯一,并且不允许为空, 分为单字段主键和多字段联合主键(也叫复合主键)
a. create table bookinfo (
book_id int primary key,
book_name varchar(20) not null
);
b. create table bookinfo(
book_id int,
book_name varchar(20) not null,
constraint pk_id primary key(book_id)
);
c. alter table bookinfo modify book_id int primary key; #修改主键约束
d. alter table bookinfo add primary key (book_id); #修改主键约束
e. alter table bookinfo add constraint pk_id primary key(book_id); #修改主键约束
f. alter table bookinfo drop primary key; #删除主键约束
- 唯一约束:要求唯一,可以为空,唯一约束可以确保一列或者几列不出现重复值, 一个表中可以有多个unique声明,但只能有一个primary key。
a. book_name varchar(20) not null unique, 方法和主键约束相同
b. alter table bookinfo drop key book_name; #删除唯一约束
c. alter table bookinfo add unique(book_name); #添加唯一约束
- 默认约束: 指定某列的默认值
a. alter table bookinfo modify press varchar(10) default '机械工业出版社';#添加默认约束
b. alter table bookinfo alter column press set default '机械工业出版社'; #添加默认约束
c. alter table bookinfo modify press varchar(20); #删除默认约束
d. alter table bookinfo alter column press drop default;#删除默认约束
- 外键约束:一个表可以有一个或多个外键,可以为空值,如不为空,则一个外键必须等于别一个表的主键值相同。
a. [constraint fk_cid] foreign key (列名) references <主表名>(主键)#创建表的时候添加外键
b. alter table bookinfo add foreign key (bok_category_id) references bookcategory(category_id); #添加外键
c. alter table bookinfo drop foreign key fk_cid; #删除外键

#删除非空约束
浙公网安备 33010602011771号