mysql常用sql语句

### MySQL常用SQL语句知识点详解 #### 一、基本操作 **标题与描述解析:** - **标题**:“mysql常用sql语句” — 指的是MySQL中常用的SQL语句集合。 - **描述**:“mysql常用sql语句,绝对适合广大mysql数据库学习爱好者收藏,学习!” — 表示这份资料非常适合MySQL的学习者收藏并学习。 #### 二、表结构的修改与创建 1. **添加字段** - **语法**: `ALTER TABLE 表名 ADD 字段名 数据类型;` - **例子**: `ALTER TABLE open_service_history ADD charge_date DATETIME;` 2. **创建表** - **语法**: `CREATE TABLE IF NOT EXISTS 表名 (字段列表);` - **例子**: `CREATE TABLE IF NOT EXISTS students (id INT PRIMARY KEY, name VARCHAR(50));` 3. **复制表结构** - **语法**: `CREATE TABLE 新表名 SELECT * FROM 原表名 WHERE 1<>1;` - **例子**: `CREATE TABLE table2 SELECT * FROM table1 WHERE 1<>1;` 4. **复制表数据** - **语法**: `CREATE TABLE 新表名 SELECT * FROM 原表名;` - **例子**: `CREATE TABLE table2 SELECT * FROM table1;` 5. **修改字段类型** - **语法**: `ALTER TABLE 表名 MODIFY 字段名 新的数据类型;` 或 `ALTER TABLE 表名 CHANGE 原字段名 新字段名 新数据类型;` - **例子**: `ALTER TABLE table1 MODIFY id INT UNSIGNED;` #### 三、数据库管理 1. **启动MySQL服务** - **命令**: `net start mysql;` 2. **登录MySQL** - **命令**: `mysql -u 用户名 -p;` - **例子**: `mysql -u root -p;` 3. **列出所有数据库** - **命令**: `SHOW DATABASES;` 4. **选择数据库** - **命令**: `USE 数据库名;` - **例子**: `USE databaseName;` 5. **列出数据库中的所有表** - **命令**: `SHOW TABLES;` 6. **查看表结构** - **命令**: `DESCRIBE 表名;` - **例子**: `DESCRIBE tableName;` 7. **创建数据库** - **语法**: `CREATE DATABASE 数据库名;` - **例子**: `CREATE DATABASE test;` #### 四、数据操作 1. **插入数据** - **语法**: `INSERT INTO 表名 (字段列表) VALUES (值列表);` - **注意**: 不能将字段的字符串数据展开到多行,否则空格会被当作数据的一部分保存。 2. **更新数据** - **语法**: `UPDATE 表名 SET 字段名 = 新值 WHERE 条件;` - **例子**: `UPDATE students SET name = '张三' WHERE id = 1;` 3. **删除数据** - **语法**: `DELETE FROM 表名 WHERE 条件;` - **例子**: 删除`student_course`数据库中的`students`表: `DROP TABLE student_course.students;` #### 五、数据备份与恢复 1. **备份整个数据库** - **命令**: `mysqldump -u 用户名 -p 数据库名 > 备份文件路径;` - **例子**: `mysqldump -u root -p test > C:\test.txt;` 2. **备份单个表** - **命令**: `mysqldump -u 用户名 -p 数据库名 表名 > 备份文件路径;` - **例子**: `mysqldump -u root -p test mytable > C:\test.txt;` 3. **恢复数据** - **命令**: `mysql -u 用户名 -p 数据库名 < 备份文件路径;` - **例子**: `mysql -u root -p test < C:\test.txt;` #### 六、用户管理 1. **创建新用户** - **语法**: `GRANT ALL PRIVILEGES ON *.* TO '用户名'@'localhost' IDENTIFIED BY '密码';` - **例子**: `GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost' IDENTIFIED BY 'mypassword';` #### 七、索引管理 1. **创建索引** - **语法**: `CREATE INDEX 索引名 ON 表名 (字段名);` - **例子**: `CREATE INDEX ind_id ON table1 (id);` 2. **删除索引** - **语法**: `DROP INDEX 索引名 ON 表名;` - **例子**: `DROP INDEX ind_id ON table1;` 3. **查看索引使用情况** - **语法**: `EXPLAIN SELECT * FROM 表名 WHERE 条件;` - **分析结果解释**: - **Table**: 涉及的表名。 - **Type**: 连接类型。如`ALL`表示全表扫描,`Range`表示范围扫描,`Ref`表示使用了索引。 - **Possible_keys**: 可能用到的索引。 - **Key**: 实际使用的索引。 - **Key_len**: 使用的索引长度。 - **Rows**: 预计需要检查的行数。 - **Extra**: 额外信息,比如是否使用了临时表、文件排序等。 #### 八、其他高级特性 1. **联合字符或多个列** - **语法**: `SELECT CONCAT(字段1, '分隔符', 字段2) FROM 表名;` - **例子**: `SELECT CONCAT(id, ':', name, '=') FROM students;` 2. **限制查询结果数量** - **语法**: `SELECT * FROM 表名 ORDER BY 字段 LIMIT 起始位置, 记录数量;` - **例子**: `SELECT * FROM students ORDER BY id LIMIT 9, 10;` 3. **MySQL不支持的功能** - 事务处理、视图、外键约束以及复杂的存储过程和触发器等功能,在MySQL中并不像在Oracle等关系型数据库管理系统中那样全面支持。 4. **索引适用的操作** - 索引通常适用于`<`, `<=`, `>=`, `>`, `=`, `BETWEEN`, `IN`等操作符,并且不带`%`或`_`开头的`LIKE`操作。 5. **索引的缺点** - 减慢增删改数据的速度。 - 占用额外的磁盘空间。 - 增加查询优化器的负担,过多的索引可能会导致查询优化器难以选择最佳查询方案。 通过以上知识点的详细介绍,我们不仅了解了MySQL中常用的SQL语句,还深入探讨了如何高效地管理和操作数据库,这对于学习和掌握MySQL数据库非常有帮助。
























启动:net start mySql;
进入:mysql -u root -p/mysql -h localhost -u root -p databaseName;
列出数据库:show databases;
选择数据库:use databaseName;
列出表格:show tables;
显示表格列的属性:show columns from tableName;
建立数据库:source fileName.txt;
匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串;
增加一个字段:alter table tabelName add column fieldName dateType;
增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;
增加一个管理员帐户:grant all on *.* to user@localhost identified by "password";
每条语句输入完毕后要在末尾填加分号';',或者填加'\g'也可以;
查询时间:select now();
查询当前用户:select user();
查询数据库版本:select version();
查询当前使用的数据库:select database();
1、删除student_course数据库中的students数据表:
rm -f student_course/students.*
2、备份数据库:(将数据库test备份)
mysqldump -u root -p test>c:\test.txt
备份表格:(备份test数据库下的mytable表格)
mysqldump -u root -p test mytable>c:\test.txt
将备份数据导入到数据库:(导回test数据库)
mysql -u root -p test
3、创建临时表:(建立临时表zengchao)
4、创建表是先判断表是否存在
create table if not exists students(……);
5、从已经有的表中复制表的结构
create table table2 select * from table1 where 1<>1;
6、复制表
create table table2 select * from table1;
7、对表重新命名
alter table table1 rename as table2;
8、修改列的类型
alter table table1 modify id int unsigned;//修改列id的类型为int unsigned
alter table table1 change id sid int unsigned;//修改列id的名字为sid,而且把属性修改为int unsigned
9、创建索引
alter table table1 add index ind_id (id);
create index ind_id on table1 (id);
create unique index ind_id on table1 (id);//建立唯一性索引
10、删除索引
drop index idx_id on table1;
alter table table1 drop index ind_id;
11、联合字符或者多个列(将列id与":"和列name和"="连接)
select concat(id,':',name,'=') from students;
剩余7页未读,继续阅读

- liwenhui05272011-09-21这也太简单了点,总共才两百多行,可以确定是最简单、最常用的语句

- 粉丝: 1
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源


