数据库-增删改查

一、库的增删改

1.创建数据库

-- 若存在,则报错(1007, u"Can't create database 'bank'; database exists")
create database `gx_dcms`;
-- 尝试创建数据库
create database if not exists `gx_dcms`;
-- 创建数据库并设置字符集
CREATE DATABASE `gx_dcms ` DEFAULT CHARSET utf8mb4 COLLATE utf8_unicode_ci;
-- 查看数据库创建语句
show create database `gx_dcms`;

2.查看数据库

-- 使用 LIKE 从句,查看名字中包含 test 的数据库
SHOW DATABASES LIKE '%test%';   

3.修改数据库

-- 修改数据库名称
修改数据库名,备份当前库,新建库,再导入备份数据

4.切换数据库

-- 切换数据库;当前在gx_dcms切换到gx_ccms仍使用use database sql切换另一个数据库
use database `gx_dcms`;
-- 查看当前切换数据库
select database();

5.删除数据库

--删除不存的,(1008, u"Can't drop database 'bank'; database doesn't exist")
drop database `gx_dcms`;
--删除数据库,若存在gx_dcms
drop database if exists `gx_dcms`;

二、表的增删改

1.创建表

-- `键盘左上角标点
CREATE TABLE `cms_program` ( 
        -- 设置id自增AUTO_INCREMENT
        `id` BIGINT(20) NOT NULL AUTO_INCREMENT,
        `name` VARCHAR(255) NULL DEFAULT NULL,
        -- 设置id为主键
        primary key (`id`),
        -- 指定存储引擎InnoDB,提供事务控制能力,执行命令被回退
        -- 指定表的字符集
)  engine = InnoDB default charset = utf8mb4 collate utf8mb4_general_ci;
-- 查看创建表的语句
show create table `cms_program`;

2.删除表

-- 删除表结构和数据
DROP TABLE `cms_program`;


-- 删除表数据;
-- 原数据不放到rollback segment中,不能回滚. 操作不触发trigger
-- 删除速度,TRUNCATE>DELETE
TRUNCATE TABLE `cms_program`;


-- 删除表结构;删除所有的行,但是表的结构、属性和索引都是完整的
-- 放到rollback segement中,事务提交之后才生效;
-- 如果有相应的trigger,执行的时候将被触发
DELETE TABLE `cms_program`

3.修改表

-- 修改表名
alter table `cms_program` rename to `gx_newdcms`;

三、列的增删改

1.创建列

-- 增加单列
alter table `cms_program` add column `content_code` varchar(128);
-- 增加多列
alter table `cms_program` 
add column `content_type` varchar(128),
add column `content_time` datetime;

2.删除列

-- 删除单列
ALTER TABLE `cms_program` DROP COLUMN `name`;
-- 删除多列
ALTER TABLE `cms_program` 
DROP COLUMN `content_type`,
DROP COLUMN `content_time`;

3.修改列

-- 修改列的类型
ALTER TABLE `cms_program` modify column `name` varchar(255);
-- 修改列的名称
ALTER TABLE `cms_program` change column `name` `username` varchar(255);

四、数据的增删改

1.插入数据

-- 插入完整数据,带列名
INSERT INTO `cms_program` ('id','conent_name')
VALUES('1','Alice');
-- 插入完整数据,不带列名
INSERT INTO `cms_program`
VALUES (值1,值2,值3…值n);
-- 指定字段,插入数据
INSERT INTO `cms_program` ('id')
VALUES ('1');
-- 插入多条数据
INSERT INTO 表名 VALUES
        (值1,值2,值3…值n),
        (值1,值2,值3…值n),
        (值1,值2,值3…值n);

2.更新数据

-- 更新某个字段/多个字段用WHERE指定位置
UPDATE student2 SET sname='jack2' WHERE sno='s1001';
UPDATE student2 SET sname='jack2',age=30,address=NULL WHERE sno='s1001';

3.删除数据

-- 删除表数据,表结构存着
DELETE FROM student2 WHERE sno='s1001';
DELETE FROM student2;

五、索引

1.创建索引

2.增加索引

-- 添加PRIMARY KEY(主键索引) 
ALTER TABLE `table_name` ADD PRIMARY KEY (`column`) ;
-- 添加UNIQUE(唯一索引) 
ALTER TABLE `table_name` ADD UNIQUE (`column`);
-- 添加FULLTEXT(全文索引) 
ALTER TABLE `table_name` ADD FULLTEXT (`column`);


-- 添加INDEX(普通索引) 
ALTER TABLE `table_name` ADD INDEX index_name (`column`);
-- 添加多列索引 
ALTER TABLE `table_name` ADD INDEX index_name (`column1`, `column2`);

3.删除索引

ALTER TABLE `user_info` DROP INDEX `idx_name_mail`; 
posted @ 2021-09-12 10:12  难删亦删  阅读(268)  评论(0)    收藏  举报