CREATE TABLE students ( id INTPRIMARY KEY AUTO_INCREMENT, -- 学号(主键,自动增长) name VARCHAR(50) NOT NULL, -- 姓名(不能为空) age INTDEFAULT18, -- 年龄(默认18岁) class VARCHAR(20) -- 班级 );
解释:
PRIMARY KEY:唯一标识每一行的列(如学号)。
AUTO_INCREMENT:自动生成递增的数字(无需手动输入)。
VARCHAR(50):可变长度字符串,最多50个字符。
DEFAULT 18:如果插入数据时不指定年龄,默认设为18。
删除表
1
DROPTABLE students; -- 删除 "students" 表
修改表结构
1 2 3 4 5 6 7 8 9 10 11
-- 添加一列 "gender" ALTER TABLE students ADD gender VARCHAR(10);
-- 删除列 "class" ALTER TABLE students DROPCOLUMN class;
-- 修改列的数据类型(将 age 的类型改为 TINYINT) ALTER TABLE students MODIFY age TINYINT;
-- 重命名列(将 "gender" 改为 "sex") ALTER TABLE students CHANGE gender sex VARCHAR(10);
3. 数据操作(CRUD)
插入数据
1 2 3 4 5 6 7 8 9
-- 插入单条数据(指定列) INSERT INTO students (name, age) VALUES ('张三', 20);
-- 插入多条数据 INSERT INTO students (name, age, sex) VALUES ('李四', 19, '男'), ('王五', 21, '女');
查询数据
1 2 3 4 5 6 7 8 9 10 11
-- 查询所有列 SELECT*FROM students;
-- 查询指定列 SELECT name, age FROM students;
-- 带条件的查询(年龄大于18岁的学生) SELECT*FROM students WHERE age >18;
-- 去重查询(查询所有不重复的年龄) SELECTDISTINCT age FROM students;
更新数据
1 2 3 4
-- 将张三的年龄改为22岁(一定要加 WHERE,否则所有数据都会被修改!) UPDATE students SET age =22 WHERE name ='张三';
删除数据
1 2 3
-- 删除年龄小于18岁的学生(不加 WHERE 会清空整个表!) DELETEFROM students WHERE age <18;
4. 查询进阶
排序
作用:按指定列的值对结果排序(升序或降序)。
1 2 3 4 5 6 7 8 9 10 11
-- 按年龄升序排列(ASC 可省略) SELECT*FROM students ORDERBY age ASC;
-- 按年龄降序排列 SELECT*FROM students ORDERBY age DESC;
-- 多重排序(先按性别升序,再按年龄降序) SELECT*FROM students ORDERBY sex ASC, age DESC;