|
MySql教程
1.创建数据库
CREATE DATABASE 数据库名;
2.删除数据库
DROP DATABASE 数据库名;
3.选择数据库
USE 数据库名;
4、创建数据表
CREATE TABLE table_name(colun_name column_type);
例子:CTEATE TABLE IF NOT EXISTS `runoob_tbl`(
`id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`data` DATE,
PRIMARY KEY(`id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
实例解析:
- 如果你不想字段为 NULL 可以设置字段的属性为 NOT NULL, 在操作数据库时如果输入该字段的数据为NULL ,就会报错。
- AUTO_INCREMENT定义列为自增的属性,一般用于主键,数值会自动加1。
- PRIMARY KEY关键字用于定义列为主键。 您可以使用多列来定义主键,列间以逗号分隔。
- ENGINE 设置存储引擎,CHARSET 设置编码。
5.删除数据表
DROP TABLE table_name;
6、插入数据
INSERT INTO table_name(field1, field2....) VALUES (value1, value2....);
7、查询数据
SELECT * FROM table_name [WHERE Clause] [LIMINT N] [OFFSET M];
8、修改或更新数据
UPDATE table_name SET field1=value1, field2=value2 [WHERE Clase];
9、删除数据表记录
DELETE FROM table_name [WHERE Clause];
10、其他操作符
- LIKE子句:SQL LIKE 子句中使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
SELECT * from runoob_tbl WHERE runoob_author LIKE '%COM';
- UNION操作符:用于连接两个以上的SELECT语句的结果组合到一个结果集合中。多个SELECT语句会删除重复的数据。
- ORDER BY:对读取的数据进行排序。ASC为升序,DESC为降序。
SELECT * from runoob_tbl ORDER BY submission_date ASC;
- GROUP BY:根据一个或多个列对结果集进行分组。在分组的列上,可使用COUNT,SUM,AVG,等函数。
SELECT name, COUNT(*) FROM employee_tbl GROUP BY name;
ALTER TABLE tbl_name ADD sm_add INT;
ALTER TABLE tbl_name MODIFY sm_add CHAR(10);修改字段类型
ALTER TABLE tbl_name RENAME tbl_NewName;修改表名
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 ,用于全文索引
数据类型
| 类型 | 大小 | 范围(有符号) | 范围(无符号) | 用途 |
|---|
| TINYINT | 1 字节 | (-128,127) | (0,255) | 小整数值 | | SMALLINT | 2 字节 | (-32 768,32 767) | (0,65 535) | 大整数值 | | MEDIUMINT | 3 字节 | (-8 388 608,8 388 607) | (0,16 777 215) | 大整数值 | | INT或INTEGER | 4 字节 | (-2 147 483 648,2 147 483 647) | (0,4 294 967 295) | 大整数值 | | BIGINT | 8 字节 | (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) | (0,18 446 744 073 709 551 615) | 极大整数值 | | FLOAT | 4 字节 | (-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) | 0,(1.175 494 351 E-38,3.402 823 466 E+38) | 单精度 浮点数值 | | DOUBLE | 8 字节 | (-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) | 双精度 浮点数值 | | DECIMAL | 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 | 依赖于M和D的值 | 依赖于M和D的值 | 小数值 |
| 类型 | 大小 (字节) | 范围 | 格式 | 用途 |
|---|
| DATE | 3 | 1000-01-01/9999-12-31 | YYYY-MM-DD | 日期值 | | TIME | 3 | '-838:59:59'/'838:59:59' | HH:MM:SS | 时间值或持续时间 | | YEAR | 1 | 1901/2155 | YYYY | 年份值 | | DATETIME | 8 | 1000-01-01 00:00:00/9999-12-31 23:59:59 | YYYY-MM-DD HH:MM:SS | 混合日期和时间值 | | TIMESTAMP | 4 | 1970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07 | YYYYMMDD HHMMSS | 混合日期和时间值,时间戳 |
| 类型 | 大小 | 用途 |
|---|
| CHAR | 0-255字节 | 定长字符串 | | VARCHAR | 0-65535 字节 | 变长字符串 | | TINYBLOB | 0-255字节 | 不超过 255 个字符的二进制字符串 | | TINYTEXT | 0-255字节 | 短文本字符串 | | BLOB | 0-65 535字节 | 二进制形式的长文本数据 | | TEXT | 0-65 535字节 | 长文本数据 | | MEDIUMBLOB | 0-16 777 215字节 | 二进制形式的中等长度文本数据 | | MEDIUMTEXT | 0-16 777 215字节 | 中等长度文本数据 | | LONGBLOB | 0-4 294 967 295字节 | 二进制形式的极大文本数据 | | LONGTEXT | 0-4 294 967 295字节 | 极大文本数据 |
|