mysql管理
- show databases;-- 注意:结尾有s
- use database;
- show tables;
- show columns from 数据表;
- show index from 数据表;
- show grants; -查看自己的权限
- show grants for xb@192.168.20.5; -- 查看其他人的权限
添加用户
- CREATE USER 'laowang'@'localhost' IDENTIFIED BY '123456';
赋予权限
- grant all privileges on * . * to '用户名'@'%' IDENTIFIED by 'password';
- flush privileges;
- 格式:grant all privileges on 数据库名.表名 to '用户名'@'主机名' IDENTIFIED by 'password'; 之后需要刷新一下权限。*.* 表示所有权限,% 表示所有主机,包括远程主机和本地主机(localhost)。
mysql创建、删除、选择数据库
- 创建
- create database test_db;
- CREATE DATABASE IF NOT EXISTS test_db DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- 删除
- drop database test_db;
- 选择
- use test_db;
mysql 数据类型
主要分为三大类:数值、字符串、日期。
-
数值类型
- tinyint 1字节
- smallint 2字节
- mediumint 3字节
- int 4字节
- bigint 8字节
- float 4字节
- double 8字节
-
字符串类型
- char 定长字符串
- varchar 变长字符串
- tinyblob 二进制字符串
- tinytext 短文本字符串
- blob 二进制形式的长文本数据
- text 长文本数据
- mediumblob
- mediumtext
- longblob
- longtext
-
日期类型
- date 3字节 2019-04-16
- time 3字节 HH:MM:SS
- year 1字节 YYYY
- datetime 8字节 YYYY-MM-DD HH:MM:SS
- timestamp 4字节 YYYYMMDD HHMMSS
-
PS:
- UTF-8:一个汉字=3个字节
- GBK:一个汉字=2个字节
mysql 创建、删除、修改
创建
CREATE TABLE IF NOT EXISTS `runoob_tbl`(
`runoob_id` INT UNSIGNED AUTO_INCREMENT,
`runoob_title` VARCHAR(100) NOT NULL,
`runoob_author` VARCHAR(40) NOT NULL,
`submission_date` DATE,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
删除
- 删除整个表
- drop table 表名;
- 删除表内数据,保留表结构
- truncate table 表名;
- 删除表内数据
- delete from 表名 where 删除条件;
插入数据
INSERT INTO table_name
( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
- 向表的全部字段插入数据时,field字段可以不用写,但要按顺序添加。
查询
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
- where 子句
- =
- !=
- >
- <
- >=
- <=
- update
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
UPDATE table_name SET field=REPLACE(field, 'old-string', 'new-string')
[WHERE Clause]
- like
- '%a' //以a结尾的数据
- 'a%' //以a开头的数据
- '%a%' //含有a的数据
- '_a_' //三位且中间字母是a的
- '_a' //两位且结尾字母是a的
- 'a_' //两位且开头字母是a的
- 排序
SELECT field1, field2,...fieldN table_name1, table_name2...
ORDER BY field1, [field2...] [ASC [DESC]]
- groupby
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
- 索引
使用ALTER 命令添加和删除索引
有四种方式来添加数据表的索引:
-
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list)
- 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
-
ALTER TABLE tbl_name ADD UNIQUE index_name
(column_list)- 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
-
ALTER TABLE tbl_name ADD INDEX index_name (column_list)
- 添加普通索引,索引值可出现多次。
-
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list)
- 该语句指定了索引为 FULLTEXT ,用于全文索引。
- 临时表
临时表在当前连接有效,当断开当前连接时,表会自动销毁。
creat temporary table 表名...
只是增加了个关键词 temporary
- 导出数据
SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;
网友评论