//创建数据库
CREATE DATABASE IF NOT EXISTS TEST DEFAULT CHARSET utf8 COLLATE utf8_general_ci
// 如果数据库不存在,则创建 并指定字符集以及校对规则
//删除数据库
drop database Test
//选择数据库
use Test
//创建数据表
CREATE TABLE IF NOT EXISTS `tt`(
`id` INT UNSIGNED AUTO_INCREMENT,
`tag` VARCHAR(30) NOT NULL,
PRIMARY KEY (`id`)
INDEX `idx_tag` (`tag`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 DEFAULT COLLATE=utf8_bin
// 创建表时 整形有时会有个括号 int(11)这种 实际并非代表其真实
// 的占用空间 而是搭配fillzero来使用的可见长度
// 而对于char(4)来说就是分配的实际空间 其中后面数字代表的是字符 位于0-255
// 对于varchar(4)来说 超过4个字符的会被丢弃
// 既然varchar是可变的 那么直接指定最大数字的是否可行呢?不可行,因为从
// 数据库里取出时,并不知道数据的大小,需要分配指定的内存空间,将varchar取出
// 指定的数字越大 那么内存空间浪费越大
// 直接丢弃表
DROP TABLE tt
// 删除表内所有数据 保存表结构
TRUNCATE table tt
// 删除部分数据 可以进行回滚操作
delete from tt where 1=1;
// 插入数据
INSERT INTO tt (id, tag) values (1,1),(2,3),(5,5)
// 查询数据
select * from tt where id>0 order by id desc limit 1,3
select tt.id, name from tt, ddd where tt.id=ddd.id
// 更新表中的内容
UPDATE tt SET tag="39" where id > 0
// 如果未用主键作为where条件的话需要 SET SQL_SAFE_UPDATES = 0
// like匹配 SQL提供了四种匹配方式
// %: 表示任意0个或多个字符
// _: 表示任意单个字符
// []: 表示括号内所列任意字符的一个
// 除了这些 也支持正则表达式进行匹配操作
// UNION 用于将不同表中查询的结果集合并 默认会删除重复的项 UNION ALL会包含重复
SELECT id from tt
UNION
SELECT id from ddd
// group by select中出现的field必须得出现在group by中
select name,count(*) from employee_tbl group by name
// join(inner join) 获取两个表中字段匹配关系的记录
// left join(左连接) 获取左表所有记录,即使右表没有对应匹配的记录
// right join(右连接) 获取右表所有记录,即使左表没有对应匹配的记录
SELECT a.runoob_id, a.runoob_author, b.runoob_count FROM runoob_tbl a INNER JOIN tcount_tbl b ON a.runoob_author = b.runoob_author;
// NULL值的判断 必须使用IS NULL, IS NOT NULL
select * from rt where id is not null
// 修改表的相关信息
ALTER TABLE tt add i INT NOT NULL DEFAULT 100
ALTER TABLE tt ALTER i SET DEFAULT 1000
ALTER TABLE tt DROP i
alter table tt modify tag char(5)
alter table tt change tag tag2 char(5)
// 索引
create table t1(
id int,
key `i_d`(`id`)
);
ALTER TABLE tt ADD INDEX i_idx(id)
ALTER TABLE tt ADD PRIMARY KEY(id)
ALTER TABLE tt ADD UNIQUE i_idx(id)
DROP INDEX i_idx on tt
alter table t1 drop index `i_d`;
show index from tt // 查看索引
// 创建临时表
create temporary table t2 as (select * from tt)
// 查看表的创建命令
show create table tt
Mysql基础操作
最新推荐文章于 2024-05-26 23:27:33 发布