MySQL数据库复习常用SQL 语句相关

每天都是一个新的开始,不要让昨天的过错和遗憾影响你的未来。


SQL 语句相关

– 创建数据库DBTEST

CREATE DATABASE DBTEST CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

– 查询用户表中的信息

USE mysql
SELECT USER, HOST, PLUGIN, authentication_string FROM USER;

– 新建zhanghaoze用户

CREATE USER 'zhanghaoze'@'%' IDENTIFIED BY '123456';

– 查询’zhanghaoze’@'%'用户在数据库中的权限

SHOW GRANTS FOR 'zhanghaoze'@'%';

– 授予’zhanghaoze’@'%'用户对studentsdata数据库的所有操作权限

GRANT ALL ON studentsdata.* TO 'zhanghaoze'@'%';

– zhanghaoze用户创建 bank 表

CREATE TABLE bank (

  -- ID 字段,自增的整数值

  id INT(11) NOT NULL AUTO_INCREMENT,

  -- 账户号字段,长度为 20 的字符串,不允许为空

  account_number VARCHAR(20) NOT NULL,

  -- 账户名字段,长度为 50 的字符串,不允许为空

  account_name VARCHAR(50) NOT NULL,

  -- 余额字段,数字类型,长度为 10,小数点后保留 2 位(即精度为 2),默认值为 0.00

  balance DECIMAL(10, 2) DEFAULT 0.00,

  -- 设置 ID 为主键

  PRIMARY KEY (id),

  -- 设置 账户号 为唯一索引

  UNIQUE KEY (account_number)

) ENGINE=INNODB DEFAULT CHARSET=utf8;

– 插入数据

INSERT INTO bank (account_number, account_name, balance)

VALUES ('1234567890', '张三', 1000),

       ('2345678901', '李四', 500),

       ('3456789012', 'Charlie', 250),

       ('4567890123', 'David', 100),

       ('5678901234', 'Emma', 2000),

       ('6789012345', 'Frank', 1500),

       ('7890123456', 'Grace', 800),

       ('8901234567', 'Henry', 350),

       ('9012345678', 'Isabella', 900),

       ('0123456789', 'John', 1200);

# 事务的成功提交:模拟张三给李四转 500 元钱

SELECT * FROM bank;
START TRANSACTION;  #开启事务 

– 执行从张三账户扣出500元

UPDATE bank SET balance=balance-1000 WHERE account_name='张三';

– 执行往李四账户加入500元

UPDATE bank SET balance=balance+1000 WHERE account_name='李四';

COMMIT; 

– 查看账户

SELECT * FROM bank;

# 事务回滚:模拟李四给张三转 500 元钱失败

START TRANSACTION;

– 执行往李四账户扣出500元

UPDATE bank SET balance=balance-500 WHERE account_name='李四';

– 执行往张三账户加入500元,但是加了650

UPDATE bank SET balance=balance+650 WHERE account_name='张三';
ROLLBACK;

– 查看账户

SELECT * FROM bank;
    CREATE TABLE sys_user(
    uid INT(6) PRIMARY KEY AUTO_INCREMENT COMMENT'客户编号,PK',
    uName VARCHAR(200)NOT NULL COMMENT'客户姓名',
    uPassWord INT NOT NULL COMMENT'客户密码')
    ENGINE=INNODB DEFAULT CHARSET=utf8;
    INSERT INTO sys_user (uName, uPassWord) VALUES ('John Doe', '12345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Jane Smith', '12345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Bob Johnson', '12345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Alice Brown', '212345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Charlie Green', '212345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('David Lee', '212345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Emily Davis', '123456780');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Frank Wilson', '2123456780');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Grace Taylor', '212345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Henry Martin', '212345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('John Doe', '202123456780');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Jane Smith', '2012345678');
    INSERT INTO sys_user (uName, uPassWord) VALUES ('Bob Johnson', '202123456780');
    UPDATE sys_user SET uName='张三', uPassWord='212345678' WHERE uid=5;
  CREATE TABLE hos_district(
  did INT(6) PRIMARY KEY COMMENT'区县编号,PK',
  dName VARCHAR(200) NOT NULL COMMENT'区县名称')
  ENGINE=INNODB DEFAULT CHARSET=utf8;
  ```
```sql
  INSERT INTO hos_district(did, dName)
  VALUES
  (1, '北京市海淀区'),
  (2, '北京市朝阳区'),
  (3, '北京市东城区'),
  (4, '北京市西城区'),
  (5, '北京市丰台区'),
  (6, '北京市石景山区'),
  (7, '北京市门头沟区'),
  (8, '北京市房山区'),
  (9, '北京市通州区'),
  (10, '北京市顺义区'),
  (11, '北京市昌平区'),
  (12, '北京市大兴区'),
  (13, '北京市怀柔区'),
  (14, '北京市平谷区'),
  (15, '北京市密云区'),
  (16, '北京市延庆区')
    CREATE TABLE hos_street(
    sid INT(6) PRIMARY KEY AUTO_INCREMENT COMMENT'街道编号,PK',
    sName VARCHAR(200) NOT NULL COMMENT'街道名称',
    sDid INT(6) NOT	NULL COMMENT'区县编号',
    FOREIGN KEY (sDid) REFERENCES hos_district(did)
    )ENGINE=INNODB DEFAULT CHARSET=utf8;
    INSERT INTO hos_street(sid, sName, sDid)
    VALUES
    (1, '街道1', 1),
    (2, '街道2', 2),
    (3, '街道3', 3),
    (4, '街道4', 4),
    (5, '街道5', 5),
    (6, '街道6', 6),
    (7, '街道7', 7),
    (8, '街道8', 8),
    (9, '街道9', 9),
    (10, '街道10', 10),
    (11, '街道11', 11),
    (12, '街道12', 12),
    (13, '街道13', 13),
    (14, '街道14', 14),
    (15, '街道15', 15),
    (16, '街道16', 16);
    CREATE TABLE hos_type(
    hTid INT(6) PRIMARY KEY AUTO_INCREMENT COMMENT'房屋类型编号,PK',
    htName VARCHAR(200) NOT NULL COMMENT'房屋类型名称'
    )ENGINE=INNODB DEFAULT CHARSET=utf8;
    INSERT INTO hos_type(htName) VALUE ('廉租房'),('公租房'),('商品房'),('安置房'),('小产权房'),('房改房'),('集资房'),('经济适用房'),('平房子'),('大房子')
    CREATE TABLE hos_house(
    hMid INT(6) PRIMARY KEY AUTO_INCREMENT COMMENT'出租房编号,PK',
    uid INT(6) NOT NULL COMMENT'客户编号',
    sid INT(6) NOT NULL COMMENT'街道编号',
    hTid INT(6) NOT NULL COMMENT'房屋类型编号',
    price DECIMAL(50) NOT NULL COMMENT'每月租金',
    topic VARCHAR(200) NOT NULL COMMENT'标题',
    contents VARCHAR(200) NOT NULL COMMENT'描述',
    FOREIGN KEY (uid) REFERENCES sys_user(uid),
    FOREIGN KEY (sid) REFERENCES hos_street(sid),
    FOREIGN KEY (hTid) REFERENCES hos_type(hTid)
    )ENGINE=INNODB DEFAULT CHARSET=utf8;
```sql
    INSERT INTO hos_house(uid, sid, hTid, price, topic, contents) VALUES
    (1, 1, 1, 2000, '精装修一室一厅', '南北通透,采光好'),
    (2, 2, 2, 2500, '两室一厅带阳台', '近地铁,交通方便'),
    (3, 3, 3, 1800, '单间出租', '家具齐全,拎包入住'),
    (4, 4, 4, 3000, '三室两厅豪华装修', '小区环境优美,安静舒适'),
    (5, 5, 5, 2200, '精装修一室一厅', '近商圈,生活便利'),
    (6, 6, 6, 2800, '两室一厅带阳台', '近公园,空气清新'),
    (7, 7, 7, 1900, '单间出租', '交通便利,周边设施齐全'),
    (8, 8, 8, 3200, '三室两厅豪华装修', '小区绿化好,安全有保障'),
    (9, 9, 9, 2400, '精装修一室一厅', '近地铁,交通方便'),
    (10, 10, 10, 2600, '两室一厅带阳台', '近商圈,生活便利');

– 查询输出第6条~第10条出租房屋信息

    SELECT * FROM hos_house LIMIT 5,5;

– 查询张三发布的所有出租房屋信息,并显示房屋分布的街道和区县

   SELECT u.`uName`, h.`topic`, h.`contents`, s.`sName`, d.`dName`
   FROM `hos_house`  AS h
   JOIN `hos_street`  AS s ON h.sid = s.sid
   JOIN `hos_district` AS  d ON s.sDid = d.did
   JOIN `sys_user` AS u ON h.uid = u.uid 
   WHERE u.uName ='张三'; 

– 数据导出操作

  1. 选中数据库,单击右键点击备份/导出

image

2.点击备份数据库转储到

image

  1. 选择指定路径点击导出即可

image

总结

本文介绍了如何使用SQL语言创建和操作不同的数据表。首先,使用USE语句选择要使用的数据库,例如使用名为myschool的数据库。然后,使用CREATE TABLE语句创建各种表格,如学生表、课程表、成绩表和年级表。每个表格都包含了不同的列和数据类型,并设置了一些约束条件。文章还给出了每个表格的具体创建语句。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清醒云思

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值