在打开mysql时一定要记得在服务中先启动,不然会出现打开输入密码后秒闪退的情况
输入密码后
create DATABASE A; 创建一个数据库,A就是数据库名字(貌似必须得大写,是为了做区分吧
drop database A;删除一个数据库
对数据库所有的操作都要指定一个具体的数据库,要用到 use A; (一定不要漏了;
show DATABASES;显示所有数据库 show TABLES;显示所有的数据库表。
CREATE TABLE B;【创建一个数据库表。
之后 比如 id INT NOT NULL/NULL,
name VARCHAR(100) NOT NULL,
date DATE,
PRIMARY KEY(‘id’),【 通过这句设置主键,主键可以有多个。
ENGINE=InnoDB DEFAULT CHARSET=utf8,
【ENGINE 为存储引擎,这种存储方式决定了他一定可以执行一组正确的命令,并且当有不正确的命令时可以全部退回
CHAESET 是设置编码
结束末尾加;就行了,之前的分句用,隔开,最后一个用;
删除
DROP TABLE B;【删除一个表
TRUNCATE TABLE B;【删除的是表的全部数据,保留表的结构
DELETE FROM B;【也是删除表全部数据,但是innodb不会释放空间 下次插入新的,依旧可以使用这部分空间
DELETE FROM B WHERE xxx【带着某种条件删除表中的某些数据 比如WHERE id=“1” 删除id为1的那条数据
插入数据
INSERT INTO B(id,name,sex)VALUES(“1”,“张三”,“男”)
查询数据
SELECT FROM B,C WHERE xxx;
还有 SELECT FROM B ORSER BY id LIMIT 5,10
关于limit 它是指返回多少条记录。 如果limit后面只有一个数 比如5,就是返回前5条 ,如果有两个数 第一个数5是指第6条,对应的下标为5 第二个数是数量,所以说是从下标为5之后的10条 如果是-1 代表直到最后
更新 UPDATE B SET name=“李四” ,sex=“女” WHERE id=“1” 【注意用,连接
LIKE 就是=的意思,一模一样.
SELECT B FROM name LIKE %张
当有%时,这句话表示查询所有以张结尾的名字
张% 查询以张开头 %张%名字中包含张这个字
可以使用 AND 或者 OR 指定一个或多个条件
UNION连接两个SELECT语句
SELECT name FROM B
UNION
SELECT name FROM C
ORDER BY id
就是从 B C两个表中选出根据id升序排列的姓名项 UNION只是选取不重复的项 如果要包含所有数据 用 UNION AII
ASC 或 DESC 是表示按升序排或者降序排列 默认按升序
SELECT name FROM B ORDER BY id ASC
如果是gbk格式 直接写就可以了 ORDER BY name
如果是utf8 则需要转换成gbk形式 ORDER BY CONVERT(name using gbk)
分组 GROUP BY 其实就是一个简单的筛重功能
分组后的条件 用HAVING来表示
COUNT(*) 统计每一组出现的次数
JOIN 总之是统计多个表中共同的数据项
INNER JOIN 是获取两个表中共同的那部分
LEFT JOIN 获取左表中的数据 RIGHT JOIN 获取右表的数据
事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)
BEGIN开始一个事务
ROLLBACK 回滚
COMMIT 确认事务
对数据表的项进行删除添加修改(比如id name sex都是)
在表B
id int NOT NULL
name varchat MULL
sex varchat NULL
添加 ALTER B ADD age int
删除 把ADD换成DROP
修改MODIFY ALTER 表名 (操作) 名称 类型
索引
索引是能提高查询效率的办法
创建索引 CREATE INDEX 索引名称 ON B(需要索引的列1,需要索引的列2)
ALTER TABLE B ADD INDEX 索引名称(列)
还可以ADD UNIQUE 索引名称(列) 表示创建索引的值必须是唯一的
ADD PRIMARY KEY(列) 索引值必须为唯一的 而且也不能为NULL
删除索引 DROP INDEX 索引名 ON B
复制表
复制表有两种方法 一是只复制表结构 二是表结构+表数据到新表
一: CREATE TABLE 新表 SELECT * FROM 旧表 WHERE 1=2
二: CREATE TABLE 新表 SELECT * FROM 旧表