Mysql安装配置
my.ini ——>配置文件 端口号:3306
default-character-set = utf8 -->默认编码方式
basedir = 基础安装目录
datadir = 数据文件存放的目录
character-set-server= utf8 在服务器上的存储方式
启动和关闭mysql 图形化界面(服务列表)/命令行界面
net start mysql 启动服务
net stop mysql 停止服务
mysql的操作梗概:
- 登录退出
- 修改mysql提示符
- mysql常用命令
- mysql语句规范
- 数据库操作
登陆与退出
登陆:
mysql -u --user=name 用户名
mysql -u root
mysql -p --password[=name] 密码
mysql -uroot -p
mysql -P --port=# 端口
mysql -P3306
mysql -h --host=name 服务器名称
mysql -h 127.0.0.1
mysql -uroot -p123456 -P3306 -h127.0.0.1
退出
exit;
quit;
/q;
通用查询
select version(); 查看版本
show engines; 查看引擎
select user(); 查看当前用户
mysql语法规范
- 关键字与函数名称全部大写
- 数据库名称,表名称,字段名称全部小写
- sql语句必须以分号结尾
创建数据库
说明:{必选项} [可选项]
CREATE {DATABASE|SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name
CREATE DATABASES study;
SHOW {DATABASE|SCHEMAS} [LIKE 'pattern'| WHERE expr]
SHOW WORNINGS; 查看错误信息
SHOW CREATE DATABASE study;
CREATE DATABASE IF NOT EXISTS t2 CHARACTER SET utf8;
修改数据库
ALTER {DATABASE|SCHEMA} [db_name] [DEFAULT] CHARACTER SET [=] charset_name;
ALTER DATABASE t2 CHARACTER SET gbk;
删除数据库
DROP {DATABASE|SCHEMA} [IF EXISTS] db_name;
数据类型
数据类型是指列,储存过程参数,表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
整型
- TINYINT: 1kb
- SMALLINT: 2kb
- MEDIUMINT: 3kb
- INT: 4kb
- BIGING: 8kb
浮点型
- FLOAT[(m,d)] m是数字总位数,d是小数点后面的位数,默认精确到7位小数值
- DOUBLE[(m,d)]
日期时间型 存储需求
- YEAR 1 1000-9999
- TIME 3 1000-9999
- DATE 3
- DATETIME 8
- TIMESTAMP 4 1970-2037
字符型
- CHAR
- VCHAR
- TINYTEXT
- TEXT
- MEDIUMTEXT
- LONGTEXT
- ENUM('VALUE1':'VALUE2'...)
- SET('VALUE':'VALUE2'...)
数据表操作:数据表是数据库最重要的组成部分之一,是其他对象的基础
行成为记录 列称之为字段
- USE 打开数据库,USE数据库名称
SELECT DATABASE(); //查看用户打开的数据 CREATE TABLE [IF NOT EXISTS] table_name( column_name data_type, ... ) > CREATE TABLE tb1( username VARCHAR(20), age TINYINT UNSIGNED, salary FLOAT(8,2) UNSIGNED );
查看数据表是否存在
- SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]
查看数据表的结构
- SHOW COLULMNS FROM tb1;
- DESCRIBE tb1;
向表中插入数据
- INSERT tb1 VALUES('TOM', 20, 1234.12);
- INSERT tb1(username, salary) VALUES('jack', 1123.12);
查找语句
- SELECT expr,... FROM tbl_name;
空值与非空
- NULL NOT NULL
- INSERT tb2 VALUES('java', NULL);
AUTO_INCREAMENT
- 当插入没有成功的时候编号也自增一
- 自动编号且必须与主键组合使用
- 默认情况下,起始值为1,每次的增量为1
PRIMARY KEY
- 主键约束
- 每张数据表只能存在一个主键
- 主键保证记录的唯一性(行为记录,列为字段)
- 逐渐自动为NOT NULL
- AUTO_INCREMENT必须和主键一起使用,主键不一定和AUTO_INCREMENT一起使用
UNIQUE KEY
- 唯一约束
- 唯一约束可以保证记录的唯一性
- 唯一约束的字段可以为空值(null)只能有一个空值
- 每张数据表可以存在多个唯一约束
DEFAULE
- 默认值
- 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值,
CREATE TABLE tb( id SMALLINT UNSIGNED KEY AUTO_INCREMENT, username VARCHAR(20) UNIQUE KEY, sex ENUM('1', '2', '3') DEFAULT'3' );
约束
- 约束保证数据的完整性和一致性
- 约束分为表级约束和列级约束
- 约束所针对字段的数目的多少来决定的
- 某一个字段列级约束
- 两个或两个以上的字段称为表级约束
- 约束类型包括 功能
- NOT NULL
- PRIMARY KEY
- UNIQUE KEY
- DEFAULT
- FOREIGN KEY 外键约束
- 保证数据一致性,完整性
- 实现一对一或一对多的关系
外键约束
- 父表和字表必须使用相同的存储引擎,而且禁止使用临时表
- 数据表的存储引擎只能为InnoDB
- 外键列和参照列必须具有相似的数据类型。其中数字的长度或是否有符号位必须相同;而字符的长度则可以不同。
- 外键列和参照列必须创建索引。如果外键列不存在索引的话,MYSQL将自动创建索引
CREATE TABLE provinces(
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
pname VARCHAR(20) NOT NULL
);
CREATE TABLE users(
username VARCHAR(20) NOT NULL,
id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
pid SMALLINT UNSIGNED,
FOREIGN KEY(pid) REFERENCES provinces(id) ON DELETE CASCADE ON UPDATE CASCADE
);
编辑数据表的默认搜索引擎
mysql配置文件(mysql.ini):default-storage-engine = INNODB
indexes
SHOW INDEXES FROM provinces\G;
- 主键在创建时自动创建索引
外键约束的参照操作
物理外键
- CASCADE: 从父表删除或更新且自动删除或更新字表中匹配的行。
- insert table users(pid,username) values ('A', tom);
- delete from provices where id = 3;
- 必须先在父表中插入记录然后才能在子表中插入记录
- FOREIGN KEY (pid) REFERENCES provinces (id) ON DELETE CASCADE
- SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。 如果使用该选项,必须保证字表列没有指定NOT NULL
- RESTRICT:拒绝对父表的删除更新操作
- NO ACTION: 标准SQL的关键字,在Mysql中与RESTRICT相同
表级约束和列级约束
- 对一个数据列建立的约束,成为列级约束
- 对多个数据列建立的约束,成为表级约束
- 列级约束既可以在列定义时声明,也可以在列定义后声明,表级约束只能在列顶以后声明。
修改数据表
- 添加主键约束:ALTER TABLE tbl_name ADD [CONSTRAINT[symbol]] PRIMARY KEY[index_type] (index_col_name..... )
- ALTER TABLE users ADD CONSTAINT users_id PRIMARY KEY (id);
- 添加唯一约束:ALTER TABLE tbl_name ADD[CONSTRAINT[symbol]] UNIQUE [INDEX|KEY] [index_name] (index_col_name,...)
- ALTER TABLE users ADD UNIQUE (username)
- 添加外键约束: ALTER TABLE users ADD FOREIGN KEY(pid) REFERENCES provinces (id);
- 添加或删除默认约束:ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal| DROP DEFAULT}
- 添加单列:ALTER TABLE tbl_name ADD [COLUMN] col_name column_definition [FIRST|AFTER col_name]
- 添加多列:ALTER TABLE tbl_name ADD [COLUMN] (col_name column_defination, ...) 不能指定位置关系
- 删除主键约束:ALTER TABLE tbl_name DROP PRIMARY KEY;
- 删除唯一约束:ALTER TABLE tbl_name DROP INDEXEX username;
- 删除外键约束:
- SHOW CREATE TABLE users2; (CONSTRAINT 'users2_ibfk_1')
删除列
ALTER TABLE tbl_name DROP [COLUMN] col_name
修改数据表
- 修改列定义:ALTER TABLE users MODIFY id SMALLINT UNSIGNED NOT NULL FIRST;
- 修改列名称:ALTER TABLE tbl_name CHANGE[COLUMN] old_col_name new_col-name column_definition [FIRST|AFTER col_name]
- ALTER TABLE users CHANGE pid p_id TINYINT UNSIGNED NOT NULL;
约束
- 功能划分:
- NOT NOLL (只能为列级约束)
- PRIMARY KEY
- UNIQUE KEY
- DEFAULT (只能为列级约束)
- FOERIGN KEY
- 按数据列的数目划分:
- 表级约束
- 列级约束
修改数据表
- 针对字段的操作:
- 添加/删除字段
- 修改列定义
- 修改列名称
- 针对约束的操作:添加/删除各种约束
- 针对数据表的操作:数据表更名(两种方式modify/change)
网友评论