这里写自定义目录标题
什么是MySql
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。
每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。
我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。
所以,现在我们使用关系型数据库管理系统(RDBMS)来存储和管理大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。
MySql的下载
MySql基础语句
1.创建数据库
CREATE DATABASE 数据库名;
2.删除数据库
drop database <数据库名>;
3.选择数据库
use 数据库名;
4.创建数据库表
CREATE TABLE table_name (column_name column_type);
例如:
CREATE TABLE IF NOT EXISTS `table1`(
`id` INT UNSIGNED AUTO_INCREMENT,
`title` VARCHAR(100) NOT NULL,
`author` VARCHAR(40) NOT NULL,
PRIMARY KEY ( `runoob_id` )
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
5.删除数据库
DROP TABLE table_name ;
6.插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
VALUES
( value1, value2,...valueN );
7.查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
例如:
select * from user where id = 1 limit 1 ,10;
where 是查询的条件
操作符 | 描述 | 例如 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等于,检测两个值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
like 模糊查询
select * from user where name like '%a_';
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的'a_' //两位且开头字母是a的
排序
SELECT * FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]
分组
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
8.更新语句
UPDATE table_name SET field1=new-value1, field2=new-value2
[WHERE Clause]
9.删除
drop table
drop 是直接删除表信息,速度最快,但是无法找回数据
truncate (table)
truncate 是删除表数据,不删除表的结构,速度排第二,但不能与where一起使用
delete from table where [条件]
delete 是删除表中的数据,不删除表结构,速度最慢,但可以与where连用,可以删除指定的行
-
相同点
-
truncate和不带where子句的delete,drop都会删除表内的数据;
-
drop,truncate都是DDL语句(数据定义语言),执行后会自动提交;
-
-
不同点
- 效率:一般来说 drop > truncate> delete;
- 是否删除表结构:truncate和delete 只删除数据不删除表结构,truncate 删除后将重建索引(新插入数据后id从0开始记起),而 delete不会删除索引 (新插入的数据将在删除数据的索引后继续增加),drop语句将删除表的结构包括依赖的约束,触发器,索引等;
- 安全性:drop和truncate删除时不记录MySQL日志,不能回滚,delete删除会记录MySQL日志,可以回滚;
- 返回值:delete 操作后返回删除的记录数,而 truncate 返回的是0或者-1(成功则返回0,失败返回-1);