--创建一个mytest数据库 create database mytest; --删除一个mytest1数据库 drop database mytest1; --使用这个数据库 use mytest; --在这个数据库中创建一个websites表 create table websites( site_id INT NOT NULL AUTO_INCREMENT, site_name varchar(40) NOT NULL, site_url varchar(40) NOT NULL, site_count int, PRIMARY KEY(site_id) )ENGINE=InnoDB DEFAULT CHARSET=utf8; --删除一个websites1数据表 drop table websites1; --在websites表中插入数据 insert into websites (site_name,site_url,site_count) value ("百度","https://www.baidu.com",4956); --查询websites表中内容 select * from websites; --更新表中某行一列或几列的数据 update websites set site_name="百度一下",site_count="1704952" where site_id=1; --批量替换表中某列特定字符串 update websites set site_name=replace(site_name,'搜索','检索'); --删除表中某行数据 delete from websites where site_id=5; --通过LIKE子句进行模糊查找 select * from websites where site_url like '%og%'; --创建一个apps表并插入数据 --使用union子句连接多个select查询 select site_name as name,site_url as url from websites union select app_name,app_url from apps; --通过order by对查询的数据进行降序排序 select * from websites order by site_count DESC; --创建一个used表并插入数据 --使用group by子句对查询结果进行分组 select used_name as name,sum(used_times) as times from used group by used_name; --通过join语句联合多表查询(inner join,left join,right join) select u.used_id,w.site_name,w.site_url,u.used_date,u.used_times from used u join websites w on u.used_name=w.site_name; --创建一个allow_null表并插入数据 --通过is null或is not null进行空值处理 select * from allow_null where null_date is null; -- 通过REGEXP 操作符来进行正则表达式匹配 select * from websites where site_name regexp '搜'; select * from allow_null where null_things regexp '^我'; --mysql事务处理(begin、commit、rollback、savepoint、rollback to) begin; insert into allow_null (null_things,null_date) value ('我老婆也生孩子了','2022-07-05'); savepoint lp; --创建保存点lp insert into allow_null (null_things,null_date) value ('你们的老婆是同一个？','2022-07-05'); rollback to lp; --回滚到保存点lp commit; --通过alter修改数据表名或数据表字段 alter table websites add site_country varchar(10); --给数据表websites添加site_country字段 alter table allow_null rename a_null; --将数据表allow_null重命名为a_null --通过alter语句给表添加索引 alter table used add index to_used(used_name); --创建临时表temp CREATE TEMPORARY TABLE temp( temp_id int not NULL auto_increment, temp_things VARCHAR(10) not NULL, temp_date date not NULL, PRIMARY KEY(temp_id) )ENGINE=INNODB DEFAULT CHARSET =utf8; --手动删除临时表temp DROP TABLE temp; --mysql从allow_null表中复制结构到allow_null_1表 show CREATE TABLE allow_null; CREATE TABLE allow_null ( --该语句为执行上一条命令的结果 null_id int NOT NULL AUTO_INCREMENT, null_things varchar(100) DEFAULT NULL, null_date date DEFAULT NULL, PRIMARY KEY (null_id) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3 CREATE TABLE allow_null_1 ( --修改结果中的表名以创建新表 null_id int NOT NULL AUTO_INCREMENT, null_things varchar(100) DEFAULT NULL, null_date date DEFAULT NULL, PRIMARY KEY (null_id) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb3; --mysql从allow_null表中复制数据到allow_null_1表 INSERT INTO allow_null_1 (null_id,null_things,null_date) SELECT null_id,null_things,null_date from allow_null; --mysql获取服务器元数据 select version(); --返回服务器Mysql版本信息 select database(); --返回当前所在数据库名 select user(); --返回当前用户名 show status; --返回服务器状态 show variables; --返回服务器配置变量 --将allow_null表的自增序列值设置为100 ALTER TABLE allow_null auto_increment = 100; --序列值用于表中自增的列，其记录了该列中下一行的值，若其值为100，则下一行该列的值即为100 --使用主键和唯一索引来保持数据的不重复 INSERT IGNORE INTO allow_null --使用insert ignore into插入将忽略重复的值，保留原来的数据 (null_id,null_things) VALUE (11,'test'); REPLACE INTO allow_null --使用replace into替换将删除原来的数据并添加新数据 (null_id,null_things) VALUE (11,'test1'); --统计used表中重复的used_name及重复次数 SELECT COUNT(*) AS repetitions, used_name FROM used GROUP BY used_name HAVING repetitions > 1; --筛选重复次数大于1的结果 --在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据 SELECT DISTINCT used_name FROM used; --使用 GROUP BY 来读取数据表中不重复的数据 SELECT used_name FROM used GROUP BY used_name;