【Mysql】SQL语句学习
一些重要的SQL 命令
CREATE DATABASE - 创建新数据库 CREATE TABLE - 创建新表 ALTER DATABASE - 修改数据库 ALTER TABLE - 变更(改变)数据库表 SELECT - 从数据库中提取数据 UPDATE - 更新数据库中的数据 DELETE - 从数据库中删除数据 INSERT INTO - 向数据库中插入新数据 DROP TABLE - 删除表 CREATE INDEX - 创建索引(搜索键) DROP INDEX - 删除索引
MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
SQL 语句可以单行或多行书写,以分号结尾。
注释:单行注释: – 注释内容 或 #注释内容(MySQL 特有) ;多行注释: /* 注释 */
SQL语句分类 :
-
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
-
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。
-
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。
-
DQL(Data Query Language):数据查询语言,用来查询记录(数据)。
数据库
1. 查看现有数据库
SHOW DATABASES;
2. 新建数据库
CREATE DATABASE <数据库名>;
CREATE DATABASE IF NOT EXISTS 数据库名称;创建数据库(判断,如果不存在则创建)
3. 选择数据库
USE <数据库名>;
4. 从.sql文件引入SQL语句
SOURCE <.sql文件路径>;
5. 删除数据库
DROP DATABASE <数据库名>;
表
1. 查询表
查询当前数据库下所有表名称 SHOW TABLES; 查询表结构 DESC 表名称;
2.创建表
CREATE TABLE 表名 (
字段名1 数据类型1,
字段名2 数据类型2,
…
字段名n 数据类型n
);
举个例子:
create table tb_user (
id int,
username varchar(20),
password varchar(32)
);
注意:最后一行末尾,不能加逗号
3.删除表
删除表 DROP TABLE 表名; 删除表时判断表是否存在 DROP TABLE IF EXISTS 表名;
4.修改表
修改表名 ALTER TABLE 表名 RENAME TO 新的表名; -- 将表名student修改为stu alter table student rename to stu; 添加一列 ALTER TABLE 表名 ADD 列名 数据类型; -- 给stu表添加一列address,该字段类型是varchar(50) alter table stu add address varchar(50); 修改数据类型 ALTER TABLE 表名 MODIFY 列名 新数据类型; -- 将stu表中的address字段的类型改为 char(50) alter table stu modify address char(50); 修改列名和数据类型 ALTER TABLE 表名 CHANGE 列名 新列名 新数据类型; -- 将stu表中的address字段名改为 addr,类型改为varchar(50) alter table stu change address addr varchar(50); 删除列 ALTER TABLE 表名 DROP 列名; -- 将stu表中的addr字段 删除 alter table stu drop addr;
数据操作语言
1.添加数据
给指定列添加数据 INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…); 给全部列添加数据 INSERT INTO 表名 VALUES(值1,值2,…); 批量添加数据 INSERT INTO 表名(列名1,列名2,…) VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…; INSERT INTO 表名 VALUES(值1,值2,…),(值1,值2,…),(值1,值2,…)…;
2.修改数据
修改表数据 UPDATE 表名 SET 列名1=值1,列名2=值2,… [WHERE 条件] ; update stu set sex = '女' where name = '张三';
3.删除数据
删除数据 DELETE FROM 表名 [WHERE 条件] ; -- 删除张三记录 delete from stu where name = '张三';
常见SQL语句
查询前10条数据 select * from 表名 order by id(主键)limit 10
查询第11条到第15条数据 select * from 表名 limit 10,5
查询表中的各个字段信息 select * from all_tab_columns where table_name='CS_CSSCODEDEF_DICT';
show databases; #显示当前所有的数据库 alter database test1222 character set utf8; #修改当前数据库的字符编码为utf8 drop table table_name; #删除某个表; show tables; #显示当前的库中所有的数据表; desc student; #查看数据表student中的所有字段; alter table student add company varchar(50); #为student表增加一个字段; #一次添加多条数据: insert into student(id,`name`,age,address) values (4,'曹操',27,'北京海淀'),(5,'周瑜',28,'北京朝阳'),(6,'赵云',30,'北京大兴'); update student set age=24,address="河北保定" where id=1; #更新某条数据 update student set age=age+5; #将所有的年龄都加5岁; # --------------------------------- delete from student where `name`="zhangsan"; #删除表中的某个字段; #对比: drop table table_name; #删除某个表;
其他命令
进入mysql管理命令行的命令? Mysql -uroot -p 回车 密码 showdatabases; 显示当前 mysql 服务器中有哪些数据库 show create database mysql; 显示创建数据库的 sql 语句 show create table user; 显示创建表的 sql 语句 desc user; 查询 user 表的结构 explain select * from user; 获取 select 相关信息 show processlist; 显示哪些线程正在运行 SHOW VARIABLES; 显示系统变量和值 SHOW VARIABLES like ’ %conn% ’ 显示系统变量名包含 conn 的值 LEFT JOIN SELECT A.id,A.class FROM A LEFT JOIN B ONA.cid=B.id