D2-练习

作者: 喝奶茶不加奶茶 | 来源:发表于2020-06-26 17:05 被阅读0次

(一)

0、关系型数据库核心元素有哪些?
数据库分为关系型数据库和非关系型数据库,我们学的是关系型数据库,关系型数据库的核心元素有字段(列)、记录(行)。

==数据行(记录)、数据列(字段)、数据表(数据行的集合)、数据库(数据表的集合)。

1、使用命令行连接数据库服务器的命令是什么?

mysql -uroot -p

==mysql -u用户名 -p密码
或者mysql -u用户名 -p
回车后输入密码
2、列出数据库的命令

​ * 查看所有数据库

show databases;

​ * 查看数据库
查看所有数据库和查看数据库的区别是?use?
==题目错误,应该是使用数据库:use 数据库名;
​ * 查看当前使用的数据库

select database();

​ * 创建数据库

create database classes;

==create database 数据库名 charset=utf8;

​ * 删除数据库

drop database classes;

==drop database 数据库名;
创建数据库python

create database python;

==注意:创建的时候可以注上编码:create database python=utf8;
3、列出表的命令

​ * 查看当前数据库的所有表

show tables;

​ * 查看指定表的结构

desc table_name;

设计班级表结构为id、name、isdelete,编写创建表的语句

create table class(
id int(20),
name varchar(20) not null,
isdelete bit);

注意:varchar 类型一定要记得指定 长度。

create table classes(
id int unsigned auto_increment primary key not null,
name varchar(10),
isdelete bit default 0
);
学习对ID的约束以及给isdelete设置默认值为0 。
4、列出数据操作语句的语法
curd(create-update-r-drop)

​ * 增加
insert into class values(1,'mary',0);
​ * 修改
== update class set gender='男' where id=1;
​ * 删除
==delete from class where id=2;
​ * 基本查询(select)
==select * from 表名;

向班级表中插入数据python1、python2、python3

insert into class values(2,'python1',0);
insert into class values(3,'python2',0);
insert into class values(3,'python3',0);

==
如果id 是自增的,可以写成:

insert into classes(name)  values('python1'),('python2'),('python2');

总结:

  • 数据的增删改查不够熟练。
  • 学习是输入,要有输出。
  • 一直在说的SQL的CRUD,可以对应如下:

create-->insert
retrieve-->select
update-->update
delete-->delete

(二)

1、学生表结构设计为:姓名、生日、性别、家乡,并且学生表与班级表为多对一的关系,
写出创建学生表的语句

create table students(
id int auto_increment primary key,
name varchar(20),
birthday datetime,
sex varchar(20),
hometown varchar(20));

create table students(

id int unsigned auto_increment primary key not null,

name varchar(10) not null,

birthday date,

gender bit default 1,

hometown varchar(20),

clsid int unsigned,

isdelete bit default 0

);

对比:
多了class_id和isdelete两个字段。
日期的类型:
补充:mySql中日期类型

DATE()

日期。格式:YYYY-MM-DD

注释:支持的范围是从 '1000-01-01' 到 '9999-12-31

DATETIME()

*日期和时间的组合。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 '1000-01-01 00:00:00' 到 '9999-12-31 23:59:59'

TIMESTAMP()

时间戳。TIMESTAMP 值使用 Unix 纪元('1970-01-01 00:00:00' UTC) 至今的描述来存储。格式:YYYY-MM-DD HH:MM:SS

注释:支持的范围是从 '1970-01-01 00:00:01' UTC 到 '2038-01-09 03:14:07' UTC

2、向学生表中插入数据:

​ * python1班有郭靖、黄蓉,要求:使用全列插入,一次一值

insert into students(name) values('郭靖');
insert into students(name) values('黄蓉');
insert into students values(0,'test',0,0,0);

%用全列插入输入了一个name为test的记录,
存在疑问:
(1)name之外的其余字段应该怎么输入值?
自增的字段可以自动填充,那非自增字段呢?
答案:自己随便写值上去。
(2)这里给的大条件是给学生表中插入记录,但为什么小条件要说明班级?
答案:确实是都插入到了students表里了。

​ * 未分班的学生有黄药师、洪七公、洪七婆,要求:使用指定列插入,一次多值
insert into students(name) values('黄药师'),('洪七公'),('洪七婆');



注意:给一个字段插入多条记录的写法。
3、查询学生的姓名、生日,如果没有生日则显示无
select name,ifnull(birthday,'无') from students;


注意:不同关系型数据库产品的语法对于null值的处理并不一直,简单罗列如下:

数据库产品名称 语法
SQL Server / MS Access 使用 ISNULL( 字段,指定的替换NULL的值 );
Oracle 使用 NVL()
MySQL 使用 IFNULL() 函数 或者 COALESCE() 函数

4、查询学生的姓名、年龄
%这里是查询年龄???是的,查询年龄
select name,year(birthday)-year(now()) as age from students;
5、逻辑删除洪七婆
%数据插入的要求需要确认下

update students set isdelete=1 where name='洪七婆';

6、修改洪七公的性别为男
update students set sex='男' where name='洪七公';


(三)

1、设计科目表subjects,包括科目名称

create table subjects(
name varchar(20));

==

create table subjects(
id int unsigned auto_increment primary key not null,
name varchar(20),
isdelete bit default 0);

2、向表中插入数据,科目名有:python、数据库、前端

insert into subjects(name) values('python'),('数据库'),('前端');

3、设计成绩表,字段包括:学生id、科目id、成绩

create table grades(
name_id int auto_increment primary key,
grade_id int,
grade int);

==

create table grades(
id int unsigned auto_increment primary key not null,
name_id int unsigned ,
grade_id int unsigned,
grade int);

4、向成绩表中添加一些示例数据

insert into grades values(1,22,123),(0,23,99),(0,24,88);

==

insert into grades(name_id,grade_id,grade int) values
(100,1,1),(98,1,2),(90,1,3),

(95,2,1),(100,2,2),(98,2,3);
      

相关文章

  • D2-练习

    (一) 0、关系型数据库核心元素有哪些?数据库分为关系型数据库和非关系型数据库,我们学的是关系型数据库,关系型数据...

  • D2-文案用词练习+文案节奏分析练习

    1.描述产品多用名词动词,少用形容词副词,用的话,用更具象的词汇再解释一遍。 1)用形容词的情况: 本次改进后的X...

  • 教练的提问练习D2-呼吸

    今天是提问练习第二天 请用“呼吸”这个词语,提出最少10个问题 1. 呼吸每时每刻都存在,你对他的感觉是是什么呢?...

  • D2-香香21天简笔画打怪练习

  • D2

    ?奇迹30-第34班《觉知篇—重构关系系统》? ~回归生命的本来面貌.成为自己~ D2- 觉知篇-与活力链接 早课...

  • D2- mos

    今天是学习mos课程的第二天 学习了两天的mos课程,感觉里面好多知识点都好陌生,有很多都是平时没遇...

  • 【甘南川西游】拉卜楞寺--拥有世界最长的转经长廊

    D2、白银---甘南拉卜楞寺---若尔盖县8小时500公里 户外俱乐部路书安排:D2-在白银早餐后去往拉卜...

  • 丽江记

    一、行程 行程概述D1-拉市海,住丽江D2-泸沽湖,住泸沽湖D3-泸沽湖,回住丽江D4-玉龙雪山,住丽江D5-返程...

  • 结构思考力D2

    D2-结构思考力 第一小节: 思考也存在着结构 理解、重构、呈现 不断循环的过程 帮助人们觉察 、改善自身思考结构...

  • 1组—婉婉—第二次作业

    D2-教育行业摸底 1组-董婉平 拆解案例:秋叶大叔《个人品牌7堂课》共读营99元转个人品牌系列课程 一、营销模型...

网友评论

    本文标题:D2-练习

    本文链接:https://www.haomeiwen.com/subject/vbdyfktx.html