基础操作
注意:[ ]表示可选
1.创建数据库: create database 数据库名 [character set 编码] [collate 校对规则];
-- create table 表名(
-- 字段名 字段类型 [约束],
-- 字段名 字段类型 [约束],
-- ........
-- 字段名 字段类型 [约束]
-- );
-- 注意: 小括号中最后定义的字段后面不要加逗号
-- 切换数据库: use 数据库名;
use DataBaseName;
-- 查询正在使用的数据库: select database();
-- 修改数据库: alter database 数据库名 character
-- 数据库的编码修改为utf8
alter database study_1 character set utf8;
2.执行外部sql:创建库,再将sql文件拉至库上(慢),或库名右键选导入(快)
3.修改表:
增加一列;alter table 表名 add 字段名 字段类型 字段约束;
修改表名 ; rename table 旧表名 to 新表名;
删除一列; alter table 表名 drop 字段名;
4.示例:
-- 创建表
CREATE TABLE emp(
id INT PREPARE KEY AUTO_INCREMENT,
NAME VARCHAR(30),
age INT,
dep_name VARCHAR(30),
dep_location VARCHAR(30)
);
-- 添加数据
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('张三', 20, '研发部', '广州');
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('邵二', 20, '销售部', '深圳');
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('王五', 23, '销售部','深圳');
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('赵六', 25, '研发部', '广州');
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('陈奇', 23, '研发部', '广州');
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('钱八', 27, '销售部', '深圳');
可以批量插入数据:
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES
('张三', 20, '研发部', '广州')、
('邵二', 20, '销售部', '深圳')、
('王五', 23, '销售部','深圳');
5.增删改查:
添加数据:
insert into 表名 values ();
insert into 表名(字段名1,...) values (值1,...);
INSERT INTO emp (NAME,age,dep_name,dep_loction) VALUES ('张三', 20, '销售部', '深圳');
增加字段:
alter table 表名 add 字段名 varchar();
ALTER TABLE student ADD age VARCHAR(200) NOT NULL;
删除行记录:
delete from 表名 [where 条件];
delete from 表名 where 字段名 = 字段名内的目标数据
DELETE FROM student WHERE NAME = '张三';
修改:
update 表名 set 列名=值,列名=值,... [where 条件];
例:将所有商品的价格修改为5000元
update product set price = 5000;
例:将商品名是Mac的价格修改为18000元
update product set price = 18000 where pname = 'Mac';
查询 :
select * from 表名 where 字段名 比较符 对比值
例:查询年龄大于30的
SELECT * FROM student WHERE age > 30;
select * from 表名 where 字段名 between 最低值 and 最大值;
例:查询年龄在25 到30 的
SELECT * FROM student WHERE age BETWEEN 25 AND 30 ;
6.常用sql语句示例:
-- 插入数据
-- insert into 表名 values ();
INSERT INTO student VALUES (2,'梨花','女');
-- 修改表操作
-- 增加字段
-- alter table 表名 add 字段名 varchar();
ALTER TABLE student ADD age VARCHAR(200) NOT NULL;
-- 将age的空字符改写入数据
-- update 表名 set 字段名 = 值 where 条件 = 唯一目标索引
UPDATE student SET age = 20 WHERE NAME = '梨花';
-- 删除行记录
-- delete from 表名 where 字段名 = 字段名内的目标数据
DELETE FROM student WHERE NAME = '张三';
-- 删除年龄低于20的
-- delete from 表名 where 字段名 比较符(大等小符号) 对比值
DELETE FROM student WHERE age < 20;
-- 查询
-- 查询年龄大于30的
-- select * from 表名 where 字段名 比较符 对比值
SELECT * FROM student WHERE age > 30;
-- 查询年龄在25 到30 的
-- select * from 表名 where 字段名 between 最低值 and 最大值;
SELECT * FROM student WHERE age BETWEEN 25 AND 30 ;
-- 分组查询
-- 根据性别分组,统计男...
-- select count(*) from student group by sex; 详细回看笔记
SELECT COUNT(*) FROM student GROUP BY sex;
-- 分页查询 两人一页
-- select * from 表名 limit a,b;
-- a:开始值(不包括)省略a不写,默认就是从0开始 b:页内数据量
SELECT * FROM student LIMIT 0,2;
7.mysql事务:
mysql默认自动事务管理。
一条SQL语句就是一个事务(mysql默认自动开启事务,自动提交事务)
-- 查看mysql是否自动提交事务
show variadles like '%commit%';
手动提交事务:
start transaction: -- 开启事务
-- (书写SQL语句)
commit: -- 提交事务;若有异常则换成 rollback; -- 回滚结束事务 都会结束事务