系统学习数据库day06

设计学生表

根据你所掌握的 SQL 知识,设计一张学生成绩表,编写建表 SQL 语句,表中需要有如下几列(字段):
ID,用于表的主键,自动增长
学生姓名
学生的年龄
学生的家庭住址
学生家长的联系方式
学生的注册时间
学生的性别
学生所在的班级
学生的期末成绩

CREATE TABLE `student_info` (
 `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID',
 `stu_name` varchar(16) NOT NULL COMMENT '姓名',
 `age` int NULL DEFAULT 0 COMMENT '年龄',
 `address` varchar(255) NULL COMMENT '家庭住址',
 `mobile_no` char(11) NULL COMMENT '联系方式',
 `created_at` datetime NULL DEFAULT NULL COMMENT '注册时间',
 `sex` char(1) NULL DEFAULT NULL COMMENT '性别',
 `class_name` varchar(10) NULL DEFAULT NULL COMMENT '班级',
 `score` float NULL DEFAULT NULL COMMENT '期末成绩',
 PRIMARY KEY (`id`) 
)ENGINE=MyISAM DEFAULT CHARSET=utf8;

Navicat 建表
在这里插入图片描述

cd  C:\phpstudy_pro\Extensions\MySQL5.7.26\bin

连接数据库的命令

mysql -hlocalhost -uroot -proot

后面再navicat中的命令列界面进行操作,等效于cmd
显示所有数据库

show databases;

创建数据库

create database haha charset='utf8'; #切记指定编码

使用数据库

use studydatabase1;

查看表

show tables;

DDL

DDL(Data Definition Languages)语句:数据定义语言,定义数据段、数据库、表、列、索引等数据库对象。
语句关键字:create、drop、alter

drop database haha;
drop table student_info;

创建表


CREATE TABLE `table_name` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`province_id` int(11) DEFAULT NULL COMMENT '省id',
`province_name` varchar(50) DEFAULT NULL COMMENT '省名称',
`status` tinyint(1) DEFAULT '1' COMMENT '有效标志',
`yn` tinyint(4) DEFAULT NULL COMMENT '删除标识',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`create_pin` varchar(50) DEFAULT NULL COMMENT '创建人',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`update_pin` varchar(50) DEFAULT NULL COMMENT '更新人',
`ts` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='表介绍';

创建相似表

create table 新表名  like 源表名;

.修改表结构

  • 修改字段province_name 类型(varchar(20)) 改为 varchar(20)
alter table table_name modify province_name varchar(20);
  • 增加字段
alter table table_name add colum city_name varchar(10);
  • 删除字段
alter table table_name drop column city_name;

修改表名

alter table table_name rename haha;

DQL

数据查询语言(DQL: Data Query Language)

数据检索语句,用于从表中获取数据。通常最常用的为保留字SELECT,并且常与FROM子句、WHERE子句组成查询SQL查询语句。

DML

Data Manipulation Language ,简称DML,主要用来实现对数据库表中的数据进行操作。

数据操作语言主要包括如下几种:

• 增加行数据:使用INSERT语句实现
• 修改行数据:使用UPDATE语句实现
• 删除行数据:使用DELETE语句实现

插入数据

插入数据语法:使用INSERT语句向表中插入数据,语法结构如下:

INSERT INTO    table [(column [, column...])]
VALUES        (value [, value...]);

举例

insert into dept (deptno, dname, loc) values (50, '开发', '上海');


省略列名

insert into dept  values (60, '销售', '北京');
Query OK, 1 row affected


当列名省略的时候必须要将字段的个数和顺序匹配清楚

解决办法:前提是该字段没有非空约束
在这里插入图片描述
指定好列名对应也可
在这里插入图片描述
向员工表中新增一个员工,员工编号为8888,姓名为BOB,岗位为CLERK,经理为号7788,入职日期为1985-03-03,薪资3000,奖金和部门为空。

insert into emp values(8888,'BOB','CLERK',7788,'1985-03-03',3000,null,null);

插入当前日期

insert into emp values(8889,'BOB','CLERK',7788,sysdate(),3000,null,null);

批量插入数据

INSERT INTO EMP(EMPNO, ENAME, JOB, SAL) 
VALUES 
('8881', '张三', '部门经理', 6000),
('8882', '李四', '职员', 3000),
('8883', '王五', '职员', 3500),
('8884' ,'赵六', '部门经理', 6500),
('8885', '高七', '职员', 2500),
('8886', '马八', '职员', 3100),
('8887', '钱九', '部门经理', 5000),
('8888', '孙十',  '职员', 2800);
通过子查询插入多行数据

不必书写values子句 INSERT子句和数据类型必须和子查询中列的数量和类型相匹配中列的数量

INSERT INTO 表名[(列名1[,列名2,…,列名n])] 子查询 ;

创建manager表
表结构和数据都会有

create table manager as select * from emp; 

加入where 1=0; 恒不成立的条件就仅仅会复制表结构

create table manager as select * from emp where 1=0;

向manager表中插入职位为MANAGER的记录

insert into manager select * from emp where job='manager';

使用CREATE TABLE emp_back as SELECT - FROM EMP WHERE 1=0,创建emp_back表,拷贝下来即可。
把emp表中入职日期1982年1月1日之前的员工信息复制到emp_back表中。

CREATE TABLE emp_back as SELECT * FROM EMP WHERE 1=0;
 insert into emp_back select * from emp where hiredate < '1982-01-01';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值