数据库操作
显示当前数据库
show databases;(database 后面要加s)
这行命令用来显示当前有多少个数据库
//mysql中有自带的四个库
创建数据库
create database 数据库名(name);
创建一个数据库
create dabase if not exists <数据库名(name)>;
//如果系统有与当前创建的数据库名字一样的数据库,则不会创建
//在创建数据库时我们往往要指定字符集,如果没有指定字符集,系统会使用默认的字符集:utf8
//MySQL的utf8编码不是真正的utf8,没有包含某些复杂的中文字符。MySQL真正的utf8是 使用utf8mb4,建议大家都使用utf8mb4
create base <数据库名> character set 字符集(utf8mb4)
一般我们没有指定字符集却使用汉字字符,就会报以下错误
使用数据库
use <数据库名>;
当我们要对某个数据库进行操作时一定要先选中这个数据库;
没有使用就对数据库操作会报错
删除数据库
drop database <数据库名>;
在工作中删除数据库是一项极其危险在操作前一定要慎重,因为数据库删除以后,内部看不到对应的数据库,里边的表和数据全部被删除
表操作
显示当前库下的所有表
show tables(table后面要加s);
创建表
create table <表名> (列名 类型,列名 类型,......);
举例:create table student(id int(4) ,name varchar(20));
可以使用comment增加字段说明。
例如:
可以使用default关键字来设定字段的默认值,使用is null和is not null来设定字段是否可以为空
查看表结构
desc <表名>;
删除表
drop table <表名>;
和删除库一样,删除表也是一项非常危险的操作;
表的增删查改(初阶)
增加
1.单行添加
insert into <表名> values(数据,数据);
举例:insert into student values(1,’张三’);
2.多行添加
insert into <表名> values(数据,数据),(数据,数据),(数据,数据)......;
举例:insert into student values(1234,’张三’),(2345,’王五’);
3.指定列添加
insert into 表名(列名) values(数据);
举例:insert into student(name) values(‘李四’);
查询表
全列查询
Select * from 表名;
指定列查询
Select 列名,列名 from 表名
表达式查询和别名
Select 表达式 as 新列名 from 表名
//此处的表达式数据只是一个显示出来的临时数据
//as可以省略(但是不建议)
去重-distinct
Select distinct 列名 from 表名;
举例:select distinct math from score;
//当有多个列名时,只会去重每一列都相同的数据
排序-order by
Select 列名 from表名 order by 列名 asc/desc;
// order by 列名指定某个列进行排序
//asc是升序desc是降序,如果省略就默认是asc
//排序后的数据是临时数据,不影响原数据的存储顺序
举例:select math from score order by math desc;
//如果一个sql不加order by此时查询的数据的顺序,是不确定或者无序的,当前我只是在自己的机器上进行一些简单的操作,如果惊醒一些复杂的操作,就不一定了;//order by还可以进行表达式排序
//order by还可以进行表达式排序
举例: select name,Chinese+English+math as sum from score order by sum desc;
、
//order by可以指定多个列进行排序,每个列名后都可以跟desc
举例:select name,Chinese,English,math as sum from score order by Chinese desc ,English desc ,math desc;
条件查询-where
select 列名 from 表名 where 条件
举例: select * from score where math >80;
//遍历这个表的每一行数据,把每一行的数据分别带入到条件中,如果条件成立,这个记录就会被放到集合中,如果条件不成立,这个记录就会pass
//以下是一些常用的条件符号(这里就不一一演示了)
Select 表达式 from 表名 where 条件
//条件不能用as,第三步定义的别名,where是第二步执行,执行where的时候,sum还处在未定义的状态
//这样是可以的
分页查询-limit
limit可以限制这次查询最多可以查询多少个结果
select 列名 from 表名 limit 查询个数;
举例: selete * from score limit 3;
select * from score limit 3 offset 3;
//可以用offset设置偏移量(就是下一个下标从3开始)
修改-update
Update 表名 set 列名 = 值 where 条件
举例:
//如果没有条件语句就认为选中全部
//可以一次性修改多条数据
删除-delete
Delete 列名 from 表名 where 条件
举例:delete from score where name = 10;
//不加条件就是选中全部
truncate table 表名;
//删除表中所有数据但是不删除表
语句总结
-- 单行插入: insert into 表(字段1, ..., 字段N) values (value1, ..., value N);
-- 多行插入: insert into 表(字段1, ..., 字段N) values (value1, ...), (value2, ...), (value3, ...);
-- 全列查询: select * from 表
-- 指定列查询:select 字段1,字段2... from 表
-- 查询表达式字段: select 字段1+100,字段2+字段3 from 表
-- 别名: select 字段1 别名1, 字段2 别名2 from 表
--去重: distinct select distinct 字段 from 表
-- 排序: select * from 表 order by 排序字段
-- 条件查询:where: select * from 表 where 条件
--修改:update 表 set 字段1=value1, 字段2=value2... where 条件
--删除:delete from 表 where 条件
以上就是博主对mysql基础语法的分享如果有不懂的或者有其他见解的欢迎在下方评论或者私信博主,也希望多多支持博主之后和博客!!🥰🥰