【数据库】2、数据库基本操作

本文详细介绍了数据库的基本操作,包括创建、修改和删除数据库及表。讲解了如何使用SQL语句创建用户表,插入、修改和删除数据,以及进行条件查询。还展示了如何通过LIKE和BETWEEN等操作符进行复杂的数据筛选。内容涵盖DML和DQL操作,是理解数据库管理和SQL语法的基础教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库操作:


创建数据库:CREATE DATABASE 数据库名;
判断数据库是否已经存在,不存在则创建数据库:CREATE DATABASE IF NOT EXISTS 数据库名
创建数据库并指定字符集:CREATE DATABASE 数据库名 CHARACTER SET 字符集;

table表操作:
create table user (
    Name varchar(20) comment '姓名',-- varchar(20)指长度最大20 comment指代字段说明
    age int(3) ,
    gander char(1) comment '性别', -- varchar(10)是指最大10,char(10)是固定10
    score double(3,1) comment '个人综合评分', -- mysql特有最大值99.9
    birthday datetime -- 年月日date 时分秒timestamp 年月日时分秒datetime
); -- 创建表
show tables; -- 查看所有的表
desc user; -- 查看标结构
show create table user; -- 显示创建user的语句
CREATE TABLE user1 LIKE user; -- 创建一张结构相同的表

修改表 alter:
-- 1.添加新字段
alter table user add (no int(2));
-- 2 修改原先字段的类型
alter table user modify Name varchar(10);
-- 3 删除字段
alter table user drop no;
-- 4 修改字段名
alter table user change gander sex char(1);
--  重命名表
rename table user to user2;
--  删除表
drop table user2;

 DML操作语句:
-- values值的个数和顺序必须跟前面括号中的字段顺序一致
alter table user1 modify gander varchar(4);
insert into user(Name, gander, score) values('lxm','男',99.0);
insert into user values('lxm',null,'1',99,null),
                        ('zdw',null,'1',99.0,null),
                        ('zyd',null,'1',99.0,null),
                        ('cwd',null,'1',99.0,null);
CREATE TABLE user1 LIKE user;
-- 如果只想复制 student 表中 name,age 字段数据到 student2 表中,两张表都写出相应的列名
INSERT INTO user1(Name,age) SELECT Name, age FROM user;
--  将 student 表中的数据添加到 student2 表中
insert into user1 select * from user;
-- 不带条件修改数据,将所有的性别改成男
update user set gander = '男';
-- 如果update和delete不能执⾏,需要修改数据库安全模式
SET SQL_SAFE_UPDATES = 0;
-- 带条件修改数据,将 score=99 的性别改成男
update user set gander='男' where score=99;
-- 不带条件删除数据
-- DELETE FROM 表名
-- 带条件删除数据,删除 score=100 的记录
delete from user where score=100;

-- 查询所有
select * from user;
-- 查询 user 表中的 name 和 age 列
select Name,age from user;
-- 使⽤别名
select Name as 姓名, age as 年龄 from user;
-- 表使⽤别名
select Name as 姓名, age as 年龄 from user as st;
-- 去掉重复的记录
select distinct Name from user;
-- 给所有的分数加 5 分
select score + 5 from user;

条件查询:


CREATE TABLE student (
                         id int, -- 编号
                         name varchar(20), -- 姓名
                         age int, -- 年龄
                         sex varchar(5), -- 性别
                         address varchar(100), -- 地址
                         math int, -- 数学
                         english int -- 英语
);
INSERT INTO student (id, NAME, age, sex, address, math, english)
VALUES (1, '⻢云', 55, '男', '杭州' , 66, 78),
       (2, '⻢化腾', 45, '⼥', '深圳', 98, 87),
       (3, '⻢景涛', 55, '男', '⾹港', 56, 77),
       (4, '柳岩', 20, '⼥', '湖南', 76, 65),
       (5, '柳⻘', 20, '男', '湖南', 86, NULL),
       (6, '刘德华', 57, '男', '⾹港', 99, 99),
       (7, '⻢德', 22, '⼥', '⾹港', 99, 99),
       (8, '德玛⻄亚', 18, '男', '南京', 56, 65);

-- 查询 math 分数⼤于 80 分的学⽣
select * from student where math > 80;
-- 查询 english 分数⼩于或等于 80 分的学⽣
select * from student where english <= 80;
-- 查询 age 等于 20 岁的学⽣
select * from student where age = 20;
-- 查询 age 不等于 20 岁的学⽣,注:不等于有两种写法
select * from student where age <> 20;
select * from student where age != 20;
-- 查询id是1或3或5的学⽣
select * from student where id in(1, 3, 5);
-- 查询id不是1或3或5的学⽣
select * from student where id not in(1, 3, 5);
-- 查询 english 成绩⼤于等于 75,且⼩于等于 90 的学⽣
select * from student where english between 75 and 90;
-- 查询姓⻢的学⽣
select * from student where name like '⻢%';
select * from student where name like '⻢';-- 无结果
-- 查询姓名中包含'德'字的学⽣
select * from student where name like '%德%';
-- 查询姓⻢,且姓名有两个字的学⽣
select * from student where name like '⻢_';
-- 更新马云的时间
update student set dates=now()where name='马云';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值