my sql创建表 以及基础增删改查

当下三大数据库
Oracle数据库 产品免费 服务收费
SQL sever 易用性好
My SQL 开放源代码 网站应用广泛
My SQL的优势 运行速度快 使用成本低 可移植性强 适用用户广
My sql端口默认为3306 字符集为utf8
启动 My SQL服务 cmd以管理员运行 net start mysql;
SQL结构化查询语言
DML:insert 添加数据 update 修改数据 delete 删除数据
DDL:create drop alter 创建和删除对数据库对象等操作
DQL:用来查询数据库中的各种数据 select
DCL:控制数据库中的许可权限等 grant commit rollback
下面用一系列操作来演示操作
创建一个学校的数据库 分别创建成绩表 年级表 学科表 和学生表
建库:

create database schools;
使用库
```sql
use schools
建立学生表
```sql
create table student(
studentno int(4) primary key not null auto_increment comment'学生编号',
loginpwd varchar(20) not null comment'密码',
studentname varchar(20) not null comment'学生姓名',
sex varchar(10) not null comment'性别',
gradeid int(10) not null comment'年级编号',
phone varchar(20) not null comment'电话号码',
address varchar(50)  comment'地址',
borndate datetime not null comment'生日',
Email varchar(50)  comment'邮箱',
indentiyucard varchar(50) not null comment'身份证号'
)

建立年级表和学科表
年级表

create table grade(
gradeid int(10) primary key not null comment'年级编号',
gradename varchar(20) not null comment'年级名称'
)

学科表

create table `subject`(
subjectno int(10) primary key not null comment'学科编号',
subjectname varchar(20) not null comment'学科名称',
classhour int(10) not null comment'学时',
gradeid int(10) not null comment'年级编号'
)

由于subject属于关键词所以要加上符号

创建成绩表

create table result(
studentno int(4)  not null  comment'学生编号',
subjectno int(10)  not null comment'学科编号',
examdate datetime not null default now() comment'考试时间',
studentresult int(10) not null comment'成绩'
)

这里时间默认为 当前时间 用了 now() 获取系统当前时间
default 默认值
comment 说明
添加外键
从中发现表中的很多列都有关联可以使用外键把他们关联起来
alter关键字
alter table 表名 add constraint 约束名 foreign key(列名) references 表名(列名)

alter table result add constraint result_studentno foreign key(studentno)references student(studentno);
alter table result add constraint result_subjectno foreign key(subjectno)references `subject`(subjectno);
alter table`subject`add constraint subject_gradeid foreign key(gradeid)references grade(gradeid);
alter table student add constraint student_gradeid foreign key(gradeid)references grade(gradeid);

外键建立好后可以添加数据了
通过外键应该从grade表开始添加

insert into grade values(1,'高一');
insert into grade values(2,'高二');
insert into grade values(3,'高三');
insert into grade values(4,'大一');
insert into grade values(5,'大二');
insert into grade values(6,'大三');

接着添学生表的数据,如果先添加学生表再添加grade表会出现错误,因为 学生表中有grade表的外键

insert into student values(1001,'1234','张三','男',1,'13112312345','北京市',now(),'zhangsan@qq.com','320303198712031010');
insert into student values(1002,'1234','李四','男',2,'13112312346','天津市','2021-2-3','lisi@qq.com','320303198712031011');
insert into student values(1003,'1234','王五','男',3,'13112312347','重庆市','2020-01-09 19:29:30','wangwu@qq.com','320303198712031012');
insert into student values(1004,'1234','翠花','女',1,'13112312348','上海市',now(),'cuihua@qq.com','320303198712031013');

随即添加学科表中的数据

insert into `subject` values(1,'高等数学-1',20,4);
insert into `subject` values(2,'大学语文',30,1);
insert into `subject` values(3,'成人英语',40,2);
insert into `subject` values(4,'java',50,2);
insert into `subject` values(5,'html',60,3);

最后是成绩表

insert into result values(1001,1,now(),90);
insert into result values(1003,3,'2021-2-8 18:29:54',90);
insert into result values(1004,4,now(),90);
insert into result values(1002,5,now(),90);
insert into result values(1002,2,'2021-3-29 18:29:54',90)
insert into result values(1002,3,'2020-3-29 18:29:54',90)

现在有以下要求把所所有学生成绩改成70分
update 表名 set 列名=修改值

update result set studentresult=70;

修改今天之前的成绩为50 现在是2021-3-25 10:19:45
修改本周之前的成绩为40
修改今年之前的成绩为30
修改李四大学语文的成绩为100
找出李四对应的编号和大学语文对应的编号

update result set studentresult=50 where examdate<now()
update result set studentresult=40 where week(examdate)<week(now())
update result set studentresult=30 where year(examdate)<year(now())
update result set studentresult=100 where studentno=1002 and subjectno=2

这里分别运用了year函数取日期中的年份 week函数取日期中的周数
where后面跟条件

删除数据要求删除李四的大学语文成绩
delete from 表名 where 条件

delete from result where studentno=1002 and subjectno=2

简单的查询查询全部
查询学生表全部信息
查询成绩表李四的全部信息
查询学生表中所有电话

select * from student;
select * from result where studentno=1002;
select phone from student;

基础功能大致如上。后面还有子查询事务视图 连接查询等

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值