增、删、改、查
库 DATABASE
1,创建数据库【增】
create database dbname charset utf8; #创建 数据库 库名 设置编码 UTF8
2,查询库【查】
show create database dbname; #查询数据库的 创建信息 show databases; #列出所有存在的数据库名
3,改数据库【改】
alter database db1 charset gbk; #更改 数据库 名 编码格式 GBK #更改数据库名为db1的数据库编码为gbk。
4,删除数据库【删】
drop database db1; #删 数据库 名
表 TABLE
切换库: use DataBaseName;( 库等同于文件夹,切换库就如同切换文件夹 )
查看当前库: select database();(查看当前所在的库名,就相当于查看当前文件夹名)
表的操作就是在库(文件夹)内部操作,每一个表就相当于是库中的文件,表名就是文件名,表内容就是文件内容。创建的表会生成两个文件,一个是*.frm 另一个是 *.ibd。
1,创建表【增】
#语法形式 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); #字段间用','逗号分开,最后一个不要有','逗号。 #语句样式 create table t1(id int,name char); #创建 表 表名 (列名 属性)
2,查询表【查】
show create table t1; #查询 已创建 表的属性信息 “G”使用后会格式化显示。 desc t1; #与上一条一样,查询已创建表的属性信息。 show tables; #查询当前库中所有表的名字。
3,修改表结构【改】
#修改表名 alter table t1 rename newt1 #修改 表 表名 改名 新表名 #增加字段 alter table t1 add remarks char(10); #修改 表 表名 增加 字段名 字段类型 alter table t1 add remarks char(10), add remarks2 char(11); #注:添加多个字段用','逗号分隔,';'分号结束,但都需要 ADD 字段名 数据类型 格式。 alter table t1 add newfield int first; #修改 表 表名 增加 字段名 字段类型 添加最前面 #注:first 表示将该条字段添加到表的最前面。 alter table t1 add newfield1 int after name; #修改 表 表名 增加 字段名 字段类型 在...后面 字段名 #注:after + 字段名 意思是将新的字段名填加到某字段名之后。 #删除字段 alter table t1 drop newfield1; #修改 表 表名 丢掉 字段名 #修改字段 alter table t1 modify name char(10); #修改 表 表名 属性 列名 属性值 alter table t1 change name Name char(10); #修改 表 表名 更改 列名(旧) 列名(新) 属性值
4,删除表【删】
drop table t1; #删 表 表名
复制表
1. 先建立一个空库 : create database db3 charset utf8; 2. 使用新库: use db3; 3. 【方法一】复制目标库表中的字段: create table t1 select host,user from mysql.user; 新建 表 表名 查找 字段名 从 目标库.目标表; #注:复制过后表的结构属性和表内字段数据一同都拷贝过来了。如果只想拷贝表结构,可以使用where条件或让where后的条件式不成立,这样就只拷贝表结构了。 #例:create table t1 select host,user from mysql.user where 1>5; #【方法二】复制表结构: create table t1 like mysql.user; #新建 表 表名 像 目标库.目标表 #注:只拷贝表结构,不含字段内容
记录 Record
1,添加记录【增】
insert into t1(id,name) value (id,name); #插入 到 表名(列名) 值 (列名) #into可以不写,但建议写上,使语句结构完整易读,另外就算是一个列名也必须加括号。例:t1(name) value (name) insert into t1 value(id,name),(id,name); insert into t1(name) value (name),(name); #插入 到 t1 值为(列名),如果指定了表中的某列,那么值也要按指定的格式赋值,如二例所示。
2,查表记录【查】
select id,name from t1; #查询 列名 从 表名 select id,name from db1.t1; #查询 列名 从 数据库名.表名 select * from t1; #查询 所有列 从 表名
3,改表信息【改】
update db1.t1 set name='sly'; #更新 数据库名.表名 设置 列名=新值 #将数据库db1中的t1表中name列内容改为'sly'。 update t1 set name='sly' where id=2; #更新 表名 设置 列名=新值 条件 条件值 #更新 t1表中的name列的内容改为'sly,条件为id为2的记录。
4,删除记录【删】
delete from t1; #删除 从 表名 #删除t1表中的所有记录。 delete from t1 where id=2; #删除 从 表名 条件 条件值
SQL语句的基本概念
SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:
1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER
2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT
3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE
库的命名规则
可以由字母、数字、下划线、@、#、$
区分大小写
唯一性
不能使用关键字,如create select
不能单独使用数字
最长128位
使用help + 命令 可以查看SQL语句的用法.
表
表的类型 就是 存储引擎
一、查看MySQL支持的存储引擎
#命令
show engines;
注:MySQL支持多种存储引擎,是需要关注innoDB,MySQL的默认引擎。
二、指定表类型(存储引擎)
#例: create table t1(id int) engines=innoDB;
innoDB在库中是两张表。