mysql知识整理一
MySQL安装
Windows:
压缩包,创建my.ini修改里面的配置文件添加如下信息
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=D:\mysql\mysql-5.6.17-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\mysql\mysql-5.6.17-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB
启动mysql客户端命令
mysql -u用户名 -p #进入mysql
显示有哪些数据库
SHOW DATABASES;
移动到指定数据库位置
USE 数据库名称
显示有哪些表
SHOW TABLES;
显示表内容
SELECT * FROM 表名;
显示表哪些列的内容
SELECT name,age,id FROM 表名;
创建用户:
CREATE USER 'ALEX'@'*' IDENTIFIED BY '123456'; #创建用户,'用户名'@'允许登录的ip,*是所有' IDENTIFIED BY '密码'
授权:
GRANT SELECT,INSERT,UPDATE,DELETE ON db1.t1 TO 'ALEX'@'*'; #开放哪些权限,查询,插入,更新,删除,在哪些表做操作,用户 GRANT ALL PRIVILEGES ON db2.t1 TO 'ALEX'@'*'; 开放所有权限
撤销授权
REVOKE ALL PRIVILEGES ON DB2.T1 FROM 'ALEX'@’%’; #撤销所有权限,针对表,用户。
SQL 语句规则
操作文件夹
CREATE DATABASE db1; #创建数据库 CREATE DATABASE db1 DEFAULT CHARSET UTF8; #指定数据库的默认编码 DROP DATABASE db1; SHOW DATABASE;
操作文件
SHOW TABLES; CREATE TABLE t1(id int,name char(10)) default charset=utf8; CREATE TABLE t1(id int,name CHAR(10))engine=innodb default charset=utf8; CREATE TABLE t3(id int auto_increment,name char(10))engine=innodb default charset=utf8; #创建t3表,id列整数类型,自增列。name列字符串型,指定所用表的引擎和默认字符编码。 create table t1( 列名 类型 null, #可为空 列名 类型 not null, #不可为空 列名 类型 not null auto_increment primary key, 设置为主键 id int, name char(10) )engine=innodb default charset=utf8; # innodb 支持事务,原子性操作,可回滚数据,但是效率没有下面的引擎快。 # myisam myisam primary key: 表示 约束(不能重复且不能为空); 加速查找
数据类型
数字类型: tinyint int bigint FLOAT # 浮点数据类型,到达某种长度后不精准 DOUBLE # 比FLOAT更精准点,但是到了某种长度也更不精准 DECIMAL # 字符串形式的浮点类型计数,所以精准 字符串: char() #指定长度,就算以后存的数据长度不够,内部会给你填充,比varchar优势在查询的时候速度快,因为定长度了,他就知道去哪个位置找 varcher() #指定长度,不会填充内容。 #PS:创建数据表定长列往前放 text #用来存放文本类型 上传文件:文件存硬盘,db存路径 时间类型 DATETIME #用这个类型可以显示年月和时分秒
操作文件内容
插入数据: INSERT INTO t1(id,name) VALUES(1,'alex'); 删除: DELETE FROM t1 WHERE id=6; 修改: UPDATE t1 set age=19 UPDATE t1 set age=20 WHERE age=19; 查看数据: SELECT * FROM t1; 外键: create table userinfo( uid bigint auto_increment primary key, name varchar(32), department_id int, xx_id int, constraint fk_user_depar foreign key (department_id) references color(id) )engine=innodb default charset=utf8; create table department( id bigint auto_increment primary key, title char(15) )engine=innodb default charset=utf8;