MySQL基本语法01(2022-02-21)

create DATABASE java2201;
//创建数据库表
create table book(
        id int(10),
        uname char(20)
        
        )
//查看数据库
-- show 数据库
show databases;
//查看某个数据库的定义的信息
-- 语法:  show create database 数据库名;
show create database java22011;

//删除数据库
-- 语法: drop database 数据库名
drop DATABASE java22011;

//创建数据库
-- create database 数据库名;
create database java2011;

-- 使用java2011
use java2011;

--创建数据库表
create table user(
        id INT(10),
        username VARCHAR(20),
        passwords VARCHAR(7),
        userage int,
        bithday DATE
)

//查看表
-- 语法:show 表名;
show tables;

//查看表结构
-- desc 表名
desc user;

//删除表
-- 语法 drop table 表名
drop table exam;

//创建表 加上主键约束 主键特点:唯一性和非空
create table user(
        id int PRIMARY KEY,
        username VARCHAR(10),
        passwords VARCHAR(10),
        age int,
        birthday date
)

//添加列
--需求:添加image字段
--语法:alter table 表名 add 列名 类型(长度)
alter table user add image VARCHAR(100);

//修改字段类型或者长度
--语法:alter table 表名 modify 列名 类型(长度)
alter table user modify image VARCHAR(150);

//删除字段
--需求:删除image字段
--语法:alter table 表名 drop 列名;
alter table emp drop image;


//修改表名字
--语法:rename table 表名 to 新表名;
rename table user to emp;

//DML语句:数据操作语言,定义数据库的记录(insert update delete)
//添加
--格式一:给定字段的添加数据
--语法:insert into 表名(列名1,列名2,列名3...) VALUES(值1,值2,值3...)
insert into emp(id,username,passwords) VALUES(1,"aaa","111");
insert into emp(id,username,passwords) VALUES(2,"bbb","111");
insert into emp(id,username,passwords) VALUES(3,"ccc","111");

-- 格式二:给所有的字段添加数据
-- 语法:insert into 表名 VALUES(值1,值2,值3...)
insert into emp VALUES(4,'ddd','222',18,'1999-06-01','d');
insert into emp VALUES(5,'eee','222',21,'2001-06-17','e');
insert into emp VALUES(6,'fff','222',11,'1999-12-31','f');

//修改
-- 语法:update 表名 set 列名=值1,列名=值2,...[where条件]
-- 需求:修改密码为111,id为2的人
UPDATE emp set passwords='111',username="abc" where id=2;

-- 需求:修改密码为333,username是fff的id是6的
UPDATE emp set passwords='333',username="fff" where id=6;

-- 需求:将id为5的人,修改它的基本信息username="张三" passwords='dong123' age=23 birthday="1999-06-01"
UPDATE emp set username="张三" passwords='dong123' age=23 birthday='1999-06-01' where id=5

//删除
-- 语法:delete from 表名[where 条件]
-- 删除id=6的对象
delete from emp where id=6;

-- 删除表中所有记录
-- 第一种方式:
delete from emp;
-- 备注: 删除表中的所有记录,属于DML语句

-- 方式二:
truncate table emp;
-- 备注:删除表中的所有记录,DDL语句,实际上是把整个表删除后再重新创建一个表结构相同表

//查询
selrct * from emp;

-- 创建一个表
create table exam(
        id int PRIMARY KEY auto_increment,
        uname VARCHAR(20),
        english int(20),
        math int(20),
        chinese int
)

-- 添加数据
insert into exam values(null,"张三",85,99,92);
insert into exam values(null,"王四",88,100,88);
insert into exam values(null,"王五",100,93,85);
insert into exam values(null,"张佳",89,98,70);
insert into exam values(null,"韩炜",97,65,89);
insert into exam values(null,"李涛",85,78,90);
insert into exam values(null,"何雯",95,60,68);
insert into exam values(null,"李四",89,48,89);
insert into exam values(null,"张强",85,68,89);

-- 查询所有
select * from exam

-- 查询所有学生的序号和姓名
select id,uname from exam

-- 查询所有学生的姓名和英语成绩
select uname,english from exam

-- 查询英语成绩并且去重
-- 语法:select DISTINCT 列 from 表
select DISTINCT english from exam;


-- 查看学生姓名和总成绩
select uname,english+math+chinese from exam;

-- 别名 as 关键字 关键字可以省略
-- 查看学生的姓名和总成绩
select uname as "姓名",english+math+chinese as "总分" from exam;

select uname "姓名",english+math+chinese "总分" from exam;

-- 查询学生id,别名为序号,uname 别名为姓名,和总成绩
select id as "序号",uname as "姓名",english+math+chinese as "总分" from exam;

-- 条件查询
-- 1、等值查询 =
-- 2、不等值查询 > < >= <= !=
-- 3、模糊查询 LIKE
-- 4、范围查询 IN
-- 5、条件关联查询 and or NOT

-- 查询李四的成绩
select * from exam where uname='李四';

-- 查询数学成绩大于90分的同学
select * from exam where math > 90;

-- 查询数学成绩小于90分的学生
select * from exam where math <80;

-- 查询数学成绩不等于100分的学生
select * from exam where math != 100;
select * from exam where math <> 100;

-- 查询姓名是李四 并且数学成绩小于等于90分的学生
select * from exam where uname="李四" and math <= 90;

-- 模糊查询
-- LIKE 可以进行模糊查询,在like字句中可以使用_或者使用%作为占位符
-- _只能代表一个字符
-- %可以代表任意个字符
-- 查询姓王的学生
select * from exam where uname like '王__';


select * from exam where uname '_涛';

-- 范围查询
-- 查询数学成绩100 79 48的学生的信息
select * from exam where math in(100,79,48);

-- 排序查询
-- 使用ORDER BY 字段名称 asc/desc 排序 asc默认
-- asc代表的是升序排序,desc代表的是降序排序
-- 查询学生信息并且按照语文成绩进行升序排序
select * from exam ORDER BY chinese asc;
select * from exam ORDER BY chinese desc;

-- 按照语文成绩和营养土成绩进行排序
-- 先按照语文成绩升序排序,如果成绩相同再按照英语成绩进行升序排序
select * from exam ORDER BY chinese,english asc;

-- 查询姓王的学生,按照英语成绩降序排列
select * from exam where uname like '王%' ORDER BY english desc;

-- 查询姓王的学生信息,或者数学成绩大于80的学生信息
select * from exam where uname like '王%' or math > 80 ORDER BY english asc;

-- 查询所有
select * from 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值