数据库练习

一、数据库
1、登陆数据库
2、创建数据库zoo
3、修改数据库zoo字符集为gbk
4、选择当前数据库为zoo
5、查看创建数据库zoo信息
6、删除数据库zoo

1、登陆数据库

mysql -u root -p

 2、创建数据库zoo

CREATE DATABASE zoo;

3、修改数据库zoo字符集为gbk

ALTER DATABASE zoo CHARACTER SET gbk;

 4、选择当前数据库为zoo

USE zoo;

 5、查看创建数据库zoo信息

SHOW CREATE DATABASE zoo;

 6、删除数据库zoo

DROP DATABASE zoo;

二、创建表
1、创建一个名称为db_system的数据库
2、在该数据库下创建两张表,具体要求如下
            员工表 user
     字段        类型    约束            备注
     id            整形    主键,自增长    id
     NAME        字符型    非空            姓名
     gender         字符    非空            性别
     birthday    日期型                    生日
     entry_date    日期型    非空            入职时间
     job         字符型    非空            职位

        员工绩效表 salary
    字段        类型    约束                                备注
    id            整形    主键,自增长                        id
    userId        整型    非空,外键,关联的是user表的id字段     用户id
    baseSalary    小数    非空                                基本工资
    month        整数    非空                                月份
    allowances    小数    非空,默认为0                        补贴

1. 创建一个名称为db_system的数据库:

CREATE DATABASE db_system;
USE db_system;

2. 在该数据库下创建两张表:

 员工表 `user`:

   CREATE TABLE user (
       id INT PRIMARY KEY AUTO_INCREMENT,
       name VARCHAR(255) NOT NULL,
       gender CHAR(1) NOT NULL,
       birthday DATE,
       entry_date DATE NOT NULL,
       job VARCHAR(255) NOT NULL
   );
   员工绩效表 `salary`:

   CREATE TABLE salary (
       id INT PRIMARY KEY AUTO_INCREMENT,
       userId INT NOT NULL,
       baseSalary DECIMAL(10, 2) NOT NULL,
       month INT NOT NULL,
       allowances DECIMAL(10, 2) NOT NULL DEFAULT 0,
       FOREIGN KEY (userId) REFERENCES user(id)
   );

 三、修改表
1、在上面员工表的基本上增加一个image列,类型是blob,长度255。
2、修改job列,使其长度为60。
3、删除gender列。
4、表名salary改为usersalary。
5、修改表的字符集为utf8;
6、列名name修改为username

1、在上面员工表的基本上增加一个image列,类型是blob,长度255。

ALTER TABLE user ADD COLUMN image BLOB(255);

2、修改job列,使其长度为60。

ALTER TABLE user MODIFY COLUMN job VARCHAR(60) NOT NULL;

3、删除gender列。

ALTER TABLE user DROP COLUMN gender;

4、表名salary改为usersalary。

ALTER TABLE salary RENAME TO usersalary;

5. 修改表的字符集为utf8:

ALTER TABLE user CONVERT TO CHARACTER SET utf8;
ALTER TABLE usersalary CONVERT TO CHARACTER SET utf8;

6、列名name修改为username

ALTER TABLE user CHANGE name username VARCHAR(255) NOT NULL;

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
sql语句来练习题。1. 写出创建图书表的SQL语句。 Create table book( Book_id char (10) primary key, (主码primary key) Name varchar(30) not null, (非空not null) Author varchar(20) Publish varchar(30) Price decimal(6,2) (,前表示有几位有效数字 ,后表示小数部分有几位) ) 2. 将编号为“NEU1105101”的图书的定价改为50元。 Update book (修改数据update语句) Set price=50 Where book_id=‘NEU1105101’ 3. 查询所有男性读者的姓名和出生日期。 Select name.birthdate From reader Where sex=‘男’ 4. 查询图书表中出现过哪些出版社,每个出版社名称只显示一次,并且按照出版社名称升序排列显示。 Select publish From book Order by publish ASC (按照出版社升序排列显示) 5. 查询借阅过定价介于20元到40元(包括两个边界值)图书的读者的姓名。 Select Name (建立多表连接查询) From borrow join book on borrow.book_id=book.book_id Join reader on borrow.reader_id=reader.readerid Where price >=20 and price <=40 6. 查询每个读者借阅过图书的数量,只显示借阅过图书的读者的读者编号以及借书数量。 Select count(book_id),reader_id (建立多表连接查询) From borrow join book on borrow.book_id=book.book_id Join reader on borrow.reader_id=reader.readerid Group by reder_id 7. 如果有一个名为user001的用户,请写出给他分配对图书表进行数据修改的权限的SQL语句。 Grant update on book to user001 (授权grant语句) 8. 创建一个名为view001的视图,其中包含每个出版社的名称、该出版社出版图书的数量、该出版社出版图书的最高定价、以及该出版社出版图书的最低定价。 Create view view001 (创建视图格式,聚集函数) AS Select publish,count(book_id),MAX(price),MIN(price) From student 9. 显示借阅过书名包含“数据库”字样的女性读者的编号和姓名。 Select Name,reader_id (建立多表连接查询) From borrow join book on borrow.book_id=book.book_id Join reader on borrow.reader_id=reader.readerid Where name like ‘%数据库%’ 10. 显示出版图书数量超过100本的出版社的名称及其出版图书的数量。 Select count(book_id),publish (查询图书数量,出版社名称) From book Group by publish (根据出版社的名称来分组) Having count(book_id)>100 (条件约束) 这里用having 不用where 原因是它不能和聚集函数一起使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值