SQL基本语句(一)

-- 展示数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE study DEFAULT CHARACTER SET utf8; 

-- 删除数据库
DROP DATABASE study;

-- 切换数据库
USE study;

-- 创建表
CREATE TABLE student(
    id INT PRIMARY KEY AUTO_INCREMENT;
    `name` VARCHAR(10);
    age INT;
    gender CHAR(1);
);

-- 查询所有数据
SELECT * FROM student;

-- 展示所有表
SHOW TABLES;

-- 查看表的结构
DESC TABLE student;

-- 更改表的结构
-- 添加字段
ALTER TABLE student ADD COLUMN address CHAR(10);
-- 删除字段
ALTER TABLE student DROP COLUMN address;
-- 修改表的字段
ALTER TABLE student CHANGE address addr CHAR(10);
-- 修改表的名字
ALTER TABLE student RENAME TO stu;

-- 向表中插入数据
INSERT INTO student(id,name,age,gender) VALUES(2,'张',22,'男');
-- 如果表中某个数据可以为NULL或者自增,可以插入其他不为NULL的数据,如下
INSERT INTO student(name,age,gender) VALUES('王',22,'男');
-- 如果表中每一个数据都要插入
INSERT INTO student VALUES(4,'郭',22,'女');
-- 插入多个相同类型数据
INSERT INTO student VALUES(5,'郭',22,'女'),(6,'秦',22,'男');

-- 修改表中数据
UPDATE student set age = age + 1 ;
UPDATE student set name = '单',age = age + 1 WHERE id = 2;

-- 删除表中数据
DELETE FROM student WHERE id = 5; 
-- 删除所有数据 DELETE 后自增id还是继续增加 TRIGGER则会重新计数
DELETE FROM student;
TRIGGER FROM student;

-- 查询表中数据
SELECT * FROM student;
SELECT id,name,age,gender FROM student;
SELECT id,name FROM student;
-- 查询的时候加上常量(常量不会添加进数据库数据里面)
SELECT id,name,age AS '年龄','JAVA2403' AS '班级' FROM student;
-- 逻辑查询
SELECT * FROM student WHERE name='郭' AND gender='女';

-- 逻辑条件查询
SELECT * FROM student WHERE name='郭' AND gender='女';

-- 比较运算
SELECT * FROM student WHERE java>=70 AND java<=80;
SELECT * FROM student WHERE java BETWEEN 70 AND 80;
-- != 与 <> 表达意思相同,意为不等于
SELECT * FROM student WHERE adress!='青岛';
SELECT * FROM student WHERE adress<>'青岛';

-- 查询空值、非空值
SELECT * FROM student WHERE adress IS NULL;
SELECT * FROM student WHERE adress IS NOT NULL;

-- 计算字段:通过SELECT计算出来,而不是数据库中存在的字段
SELECT id,name,(php+java) AS '总成绩' FROM student;

-- 聚合查询
SELECT SUM(php) AS 'php总成绩' FROM student;
SELECT AVG(php) AS 'php平均分' FROM student;
SELECT MAX(php) AS 'php最高分' FROM student;
SELECT MIN(php) AS 'php最低分' FROM student;

-- 统计总数(不用*或id查询的话,NULL会不计入总数)
SELECT COUNT(*) FROM student;
SELECT COUNT(id) FROM student;
SELECT COUNT(address) FROM student;

-- 查询排序(默认从小到大排序(ASC),DESC为从大到下排序)
SELECT * FROM student ORDER BY php;
SELECT * FROM student ORDER BY php ASC;
SELECT * FROM student ORDER BY php DESC;
-- 如果php成绩相同则比较java
SELECT * FROM student ORDER BY php DESC,java DESC;

-- 分组查询后筛选
SELECT address AS '地址',COUNT(id) AS '人数' 
FROM student GROUP BY address;
-- 条件加HAVING
SELECT address AS '地址',COUNT(*) AS '人数'
FROM student GROUP BY address HAVING COUNT(*)>1;

-- 字段属性设置:
-- 1、not null: 不为空,表示该字段不能放“null”这个值。不写,则默认是可以为空
-- 2、auto_increment:设定int类型字段的值可以“自增长”,即其值无需“写入”,而会自动获得并增加
-- 此属性必须随同 primary key 或unique key 一起使用。primary key = unique key + not null
-- 3、Iprimary key:设定为主键。是唯一键"加强”:不能重复并且不能使用ul,并且可以作为确定任意一行数据的“关键值”,最常
-- 见的类似: where id= 8:或 where user name =zhangsan';
-- 通常,每个表都应该有个主键,而且大多数表,喜欢使用一个id并自增长类型作为主键。
-- 但:一个表只能设定一个主键。
-- 4、unique[key]:设定为唯一键: 表示该字段的所有行的值不可以重复(唯一性)。
-- Duplicate entry zhangsan' for key name'
-- 5、default默认值: 设定一个字段在没有插入数据的时候自动使用的值
-- 6、comment“字段注释
CREATE TABLE teacher(
    id INT PRIMARY KEY AUTO_INCREMENT,
    name CHAR(10) NOT NULL COMMENT '名字',
    age INT COMMENT '年龄',
    gender CHAR(1),
    address CHAR(10) DEFAULT('中国'),
    UNIQUE KEY(name)
);

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值