MySQL目录结构
1,关键配置文件my.ini
数据库:文件夹
表:文件
数据:数据
数据库是面向关系,关系型数据库管理系统。Stucred Query Language
以对象储存,通过对象的之身属性来决定。
SQL3种注释:
单行 -- 注释内容 或者 #
多行注释 /* xxx内容 */
关于sql语言的分类
数据查询语言DDL:(凡是带有seleot关键字的都是查询语句)数据定义语言,用来定义数据库对象;库、表、列;数据库或表得结构操作
数据操作语言DML:(凡是对表当中的数据进行增删改查都是)对表中的数据更新(增删改)
数据定义语言DQL:(凡是带有create、drop、alter)对表的结构进行操作。
事务控制语言TCL:事物提交commit,事务回滚rollback
CDL(客户端授权访问数据库权限和安全级别,以及常见用户,关键之:GRANT等)
1.操作数据库:C(Create)创建
create database 数据库名称;
R(Retrieve)查询
U(Update)修改
D(Delete)删除
表结构:定义的列名和列类型
表记录:
RDBMS = 管理员(manage)+厂库(database)
database = N个table
table
选择使用某个数据库:use xxxx;
查询有哪些表:show tables;
数据库基本操作
C(Create):创建数据库
CREATE DATABASE 数据库名称[数据库选项];
判断数据库是否存在
CREATE DATABASE IF NOT EXISTS 数据库名称[数据库选项];
指定字符集
CREATE DATABASE 数据库名称 character set 字符集名;
创建数据库,判断是否存在,并指定字符集为gbk
CREATE DATABASE IF NOT EXISTS 数据库名称 CHARACTER SET BGK;
R(Retrieve):查看数据库
查看有哪些数据库
SHOW DATABASES;
查看数据库中有些什么表
show tables;
U(Update):修改数据库
修改数据库名
修改数据库的字符集
ATER DATABASE 数据库名称 CHARACTER SET 字符集名称;
D(Delete):删除
删除库:
drop database [IF EXISTS] 数据库名称;
判断是否存在再删除
DROP DATABASE IF EXISTS 数据库名称;
使用数据库
查询当前正在使用的数据库名称
SELECT DATABASE( );
选择使用某个数据库
use 数据表名;
数据表结构的基本操作
创建表
CREATE TABLE 表名(
列名1 数据类型,
列名2 数据类型,
列名3 数据类型,
列名4 数据类型
);
data:日期类型,格式为:yyyy-
复制表
CREATE TABLE 表名 LIKE 被复制的表名;
R(Retrieve):查看数据库里面有哪些表
SHOW TABLES;
查看表内容
select * from 表名;
查看表的结构:
desc 表名;
所有字段信息:
describe | DESC 数据表名; // DESC 为describe的简写,都可以运行;
DESCRIBE 数据表名 字段名;
查看表的创建语句
SHOW CREATE TABLE 表名;
简单查询
select * from 表名; (select查询 “*”代表所有)
查询数据库的字符集,查询某个数据库的创建语句
SHOW CREATE DATABASE 数据库名称;
查看数据库下含有new的数据表的详细信息,
SHOW TABLE STATUS FROM mydb LIKE '%new%';
给查询的列起别名:
select deptno,dname as deptname from dept;
查询多个字段用逗号隔开, 字段可以使用数学表达式,字段可以运算加减乘除运算。别名是中文用'' 单引号括起来
U(Update):修改表结构
修改数表名称:
格式1
ALTER TABLE 旧表名 RENAME [TO|AS] 新表名;
格式2
可以同时修改多个表名,中间用 , 逗号隔开。
RENAME TABLE 旧表名 TO 新表名 [,旧表名TO 新表名]……
修改表选项
alter table 表名 表选项 [=] 值;
alter table xx charset = utf8;
修改字段名
ALTER TABLE 数据表名 CHANGE [COLUMN] 旧字段名 新字段名 字段类型 [字段属性];
将数据表中的 description 字段修改为des:
ALTER TABLE 表名 CHANGE description des VARCHAR(255);
修改字段类型
ALTER TABLE try MODIFY email CHAR(128);
alter TABLE try MODIFY email CHAR(128);
修改字段位置
ALTER TABLE 数据表名
MODIFY 字段名1 数据类型 [FIRST | AFTER 字段名2];
ALTER TABLE rty
MODIFY sex VARCHAR(255) AFTER NAME;
FIRST 表示将字段1的调为第一个字段,
AFTER 表示将“字段1”插入到“字段2”的后面
新增字段
格式1:
ALTER TABLE 数据表名
ADD 新字段名 字段类型 [FIRST | AFTER 字段名]
可手动指定位置,不指定位置则放在最后面
格式2:
ALTER TABLE 数据表名
ADD (新字段名1 字段类型,新字段名2 字段类型 …………)
D(Delete):删除列
ALTER TABLE 数据表名 drop 列名;
删除数据表
DROP TABLE[IF EXISTS] 数据表1, 数据表2……;
可选项[IF EXISTS] 用于删除一个不存在的数据表时,防止发生错误;
增删改数据表操作DML
添加数据
如果表名后不定义列名,则默认给所有列添加值。
insert [INTO] 数据表名 (列名1,列名2){VALUES | VALUE} (值1,值2);
INTO 是可选项,VALUES和VALUE任意一个;
INSERT INTO try
VALUES(1,'NOTBOOK',2847,'high cost performance');
为部分数据添加字段
格式1:
INSERT INTO 数据表名(字段名1,字段2……)
{VALUES | VALUE }(值1,值2);
格式2
INSERT INTO 数据表名
SET 字段名1=值1 …………;
INSERT INTO goods (id,name)
VALUES(3,'Mobile phone');
一次添加多行数据
INSERT [INTO] 数据表名 [(字段列表)]
{VALUES | VALUE }(值列表)…………;
删除数据
如果不加条件这会把表中所有数据都删除。
DELETE FROM 数据表名 [WHERE 条件表达式];
TRUNCATE TABLE 表名;先删除表,软后再创建一张一样的表。
修改数据
UPDATE 数据表名 SET 字段名1 = 值 ,字段2 = 值…… [WHERE条件表达式];
(如果不要 WHERE 条件,则所有的值都变为 SET 后面所改为的值;加 WHEREH后则只改变
特定行的数据。)
基础查询数据DQL
查询所有数据
SELECT * FROM 数据表名;(* 代表选择所有
查询一个字段:
select字段名 from表名;
字段名和表名都是标识符。
查询两个字段,或者多个字段:
select 字段1,字段1 from dept; 查询所有字段,可以都写上或者用 *.
查询表中部分字段
SELECT (字段列名1,字段列名2………) FROM 数据表名;
除去重复的结果集
SELECT 字段名 ADDRESS FROM 表名;
简单条件查询
查询出符合条件的相关数据记录,可以使用 WHERE 实现。
SELECT * |{字段1,字段2………}
FROM 数据表名 WHERE 字段名 = 值;
给查询的字段列起别名:
SELECT 字段列名1 别名1 ,字段列名2 别名2 FROM 表名;
计算列
条件查询
运算符 | 作用 |
= | 用于相等比较 |
<=> | 可以进行 NULL 值比较的相等运算符 |
<= | 小于等于 |
>= | 大于等于 |
<>、!= | 表示不等与比较 |
BETWEEN … AND … | 比较一个数据是否在指定的闭区间范围内,若在则返回1,若不在则返回0 |
NOT BETWEEN … AND … | 比较一个数据是否不在指定的闭区间范围内,若不在则返回1,若在则返 回0 |
IS | 比较一个数据是否是 TRUE 、 FALSE 或 UNKNOwN .若不是则返回1,否者返回0 |
IS NOT | 比较一个数据是否不是 TRUE 、 FALSE 或 UNKNOwN .若不是则返回1, |
IS NULL | 比较一个数据是否是 NULL ,若是则返回1,否则返回0 |
IS NOT NULL | 比较一个数据是否不是 NULL ,若不是则返回1,否则返回0 |
LIKE ’匹配模式’ | 获取匹配到的数据 |
NOT LIKE ‘匹配模式’ | 获取匹配不到的数据 |
模糊查询
_ : 单个字符
% :多个任意
SELECT * FROM 表名 WHERE 字段名 LIKE ' 条件 '