Mysql中把若干个类型相同的表的集合叫做数据库,Mysql服务器管理着多个数据库,每个数据库下面都可以有若干个表。
1.启动和关闭数据库服务器;
net start mysql80 (注意没有分号)
net stop mysql80
客户端的登录,退出:
mysql (-h 服务器主机地址)-uroot -p密码 (注意没有分号)
\q (没有分号)
2.结构化查询语言(sql)
分类如下:
3.基本的数据库操作命令(写在Mysql后面的命令要加上分号,可在CMD下运行):
操作数据库->操作数据库中的表->操偶做数据库中表的数据
3.1操作数据库
show databases; 显示所有数据库
create database [ IF NOT EXISTS] name; 创建数据库
use dbname; 选择数据库,如果表名或字段名是一个特殊字符,就需带'';ep:use 'dbname'
drop database [IF EXISTS] dbanme; 删除指定的数据库
flush privileges; 刷新数据库
update user set password=password('123456')where user='root'; 修改密码
show tables; 显示数据库mysql中所有的表
describe user; 显示表mysql数据库中user表的列信息
; \g \G 都可以作为命令结束的符号;
exit; 退出MySql的客户端登录
? 命令关键词 : 寻求帮助
-- 表示注释
IF EXISTS 和 IF NOT EXISTS在创建和删除数据库时都可以避免错误的产生
4.1操作数据库表
数据库表的创建(属于DDL的一种),语法格式如下(反引号来区分保留字和普通字符):
create table [if not exists] `表名`(
'字段名1' 列类型 [属性][索引][注释],
'字段名2' 列类型 [属性][索引][注释],
#...
'字段名n' 列类型 [属性][索引][注释]
)[表类型][表字符集][注释];
CREATE TABLE IF NOT EXISTS `student` (
`id` int(4) NOT NULL AUTO_INCREMENT COMMENT '学号',
`name` varchar(30) NOT NULL DEFAULT '匿名' COMMENT '姓名',
`pwd` varchar(20) NOT NULL DEFAULT '123456' COMMENT '密码',
`sex` varchar(2) NOT NULL DEFAULT '男' COMMENT '性别',
`birthday` datetime DEFAULT NULL COMMENT '生日',
`address` varchar(100) DEFAULT NULL COMMENT '地址',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`) --PRIMARY KEY主键 一般一个表,只有一个唯一的主键
) ENGINE=InnoDB DEFAULT CHARSET=utf8
SHOW CREATE DATABASE school --查看创建数据库的语句
SHOW CREATE TABLE student --查看student数据表的定义语句
DESC student --显示表的结构
4.2Mysql 数据表的类型:
常规使用操作:
- MYLSAM 节约空间,速度较快
- INNODB 安全性高,事务的处理,多表多用户操作。
在物理空间存储的位置
所有的数据库文件都存在data目录下,一个文件夹就对应一个数据库
本质还是文件的存储!
MYSQL引擎在物理文件上的区别
- INNODB在数据库表中只有一个*.frm文件,以及上级目录下的ibdata1文件
- MYLSAM对应文件(*.frm 表结构定义文件; *.MYD数据文件(data); *.MYI 索引文件(index))
设置数据库表的字符集编码
CHARSET=utf8
不设置的话,是mysql默认的字符集编码,不支持中文
在my.ini中配置默认的编码
character-set-server=utf8
4.3数据库表的修改:
修改表名 :
ALTER TABLE 旧表名 RENAME AS 新表名
添加表的字段 :
ALTER TABLE 表名 ADD字段名 列属性[]
修改表的字段 :
ALTER TABLE 表名 MODIFY 字段名 列属性[] --修改约束,不能重命名
ALTER TABLE 表名 CHANGE 旧字段名 新字段名 列属性[] --字段重命名,修改约束都可以
删除表的字段 :
ALTER TABLE 表名 DROP 字段名
删除表 :
DROP TABLE [IF EXISTS] 表名
IF EXISTS为可选 , 判断是否存在该数据表
所有的创建和删除操作尽量加上判断,以免报错
注意点:
- 字段名使用’'包裹
- 注释 – /**/
- sql关键字大小写不敏感