MySQL基础知识(系统归类)
一、MySQL基础知识
1. MySQL相关控制
- 连接服务器
- 关闭服务器
- 管理服务器
二、MySQL基本操作
1. 库操作
- 新建数据库
- 查询数据库
- 修改数据库
- 删除数据库
2. 表操作
- 新增表
- 查看表
- 修改表
- 删除表
3. 数据操作
- 新增数据
- 查看数据
- 修改(更新)数据
- 删除数据
三、其他
讨厌简书不支持Markdown格式目录。
一、MySQL基础知识
数据库的操作无非就是增删改查,具体的包括库操作、表操作和数据的操作。很多人说SQL语句难学,主要还是因为太多种操作而搞得自己都混乱了,所以开始操作前要理清思路,你要干什么,你要操作的是哪里,这样就不会难了。
最开始要介绍的是MySQL的注释。MySQL注释的格式:“-- 注释
”。
MySQL相关控制
连接服务器 mysql -h -P -u -p
说明:
- h:host
- P:端口
- u:username
- p:password
如果是连接本机的数据库,则只需输入u与p即可
> mysql -uroot -proot -- uroot表示用户名为root;proot表示密码为root,这里大家自行做相应更改
安全起见可以这样:
> mysql -uroot -p
> root
关闭服务器
有三种方式:exit
、quit
、\q
管理服务器
windows下有三种方式进行服务端管理
- windows服务管理(快捷方式为:运行=>services.msc)
- 通过服务命令在dos下管理:(
net 管理服务
)
> net stop mysql
- 直接通过执行文件(安装目录->bin->mysql.exe)
二、MySQL基本操作
MySQL的操作就是对数据进行增删改查。包括库操作、表操作(字段操作)和数据操作。本文以系统性的分好了几大类,逻辑性较强。
库操作
新建数据库
create database 数据库名字 [库选项]
库选项:可进行字符集设置
> create database mydatabase charset utf8;
查询数据库
查询所有:
> show databases; -- 注意show语句查询该英文是复数形式,慎重!
模糊查询:有%和_
> show databases like 'my%'; -- 查询my开头,后接任意个字符的数据库
> show databases like 'mydatabas_'; -- 查询mydatabas后接一个字符的数据库
查询数据库创建语句:
> show create database `mydatabase`; -- 数据库名字要英文输入法下的左上角的那个符号包着!
修改数据库(数据库名称不可修改,只能修改库选项)
alter database 数据库名字 [库选项];
删除数据库
drop database 数据库名字;
表操作
新增表(具体有两个方式)
create table 表名(字段1 字段类型,字段2 字段类型)[表选项];
表选项:
- 字符集:设置表的字符集
- 存储引擎:不同存储和处理数据的方式(稍后解释)
显式指定数据:在创建表名时使用(库.名字)
> create table mydatabase.mytable( id int, -- id为整型
name varchar(10) -- name为字符串
) charset utf8 engine innodb; -- engine默认为innodb,所以可以不填
隐式指定数据:事先进入到某个数据库(use 数据库名
)
> use mydatabase;
> create table mytable2(id int, name varchar(10))
存储引擎:
- InnoDB:只会创建一个表结构文件,其他的索引和数据存放在ibdata1文件(安装路径/mysql/data/ibdata1)中
- Myisam:会创建三个文件,结构文件、数据文件和索引文件
查看表(必须进入到数据库)
查看表的基本信息:show tables;
或show tables like 'pattern';
> show tables; -- 查看所有当前数据库下的表
查看表的创建语句:show create table 表名
> show create table mytable;
查看表结构:desc 表名;
或describe 表名;
或show column from 表名;
修改表(不管修改哪个部分都要加上字段类型)
可以修表的名字、属性、位置和表的字段的增删改查
alter table 表名 [add/modify/drop] [column] 字段名字 [字段类型] [字段位置]
重命名:rename 旧表名 to 新表名;
增加字段:alter table 表名 add column 字段类型 [位置]
位置:默认在最后增加。first、after
> alter table mytable add column age int;
修改字段(修改字段位置、类型、名字)
修改字段类型和位置:
> alter table mytable modify name varchar(10) after age;
修改字段名字:alter table 表名 change 旧字段名 新字段名 字段类型 字段位置
> alter table mytable change name second varchar(10);
删除字段:alter table 表名 drop 字段名;
删除表
drop table 表名
数据操作
新增数据
insert into 表名(字段列表) values (值列表);
字段列表可以没有,以为着值列表里的字段数必须与表中的字段数完全一致。
> insert into mytable values (1, 'moumou', 18);
或
> insert into mytable(name, id, age) values ('me', 2, 20);
查看数据
select 字段列表 from 表名 [where 条件];
> select * from mytable; -- *表示所有字段
> select name from mytable;
> selct * from mytable where age > 20;
修改(更新)数据
updata 表名 set 字段 = 值 [where 条件];
> update mytable1 set age = 19 where id = 1;
删除数据
delete from 表名 [where 条件];
> delete from mytable where id = 2; -- 删除id=2的记录
三、其他
- 行(row)和记录(record)说的是同一个东西
- 列(column)和字段(field)同上