sql笔记——初识

本文详细介绍了如何使用Dbeaver进行数据库创建、导入SQL执行、以及DDL、DML和DCL等SQL语句的操作,包括表的创建、删除和修改,数据的增删改查,以及索引的创建。同时强调了SQL语句的书写规则和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dbeaver安装

创建数据库

create database shop

导入sql并执行

直接复制粘贴

要用“执行sql脚本”执行

sql语句分类

DDL:数据定义语言。创建或删除存储数据用的数据库以及数据表。

创建,删除,修改:

create
drop
alter  

DML:数据操纵语言。查询或变更表记录。

select 查
insert 增
update 改
delete 删

DCL:数据控制语言。确认或取消变更;权限设定。

commit  确认变更
rollback 取消变更
grant 赋予权限
revoke 取消权限

书写规则

  1. 语言不区分大小写,但是写入的数据区分。
  2. win不区分表名、字段名大小写,linux/max严格区分
  3. 常数由单引号
  4. (?什么意思)SQL 语句的单词之间需使用半角空格或换行符来进行分隔,且不能使用全角空格作为单词的分隔符,否则会发生错误,出现无法预期的结果。

表创建

CREATE DATABASE < 数据库名称 > ;
CREATE TABLE < 表名 >
( < 列名 1> < 数据类型 > < 该列所需约束 > ,
  < 列名 2> < 数据类型 > < 该列所需约束 > ,
  < 列名 3> < 数据类型 > < 该列所需约束 > ,
  < 列名 4> < 数据类型 > < 该列所需约束 > ,
  .
  .
  .
  < 该表的约束 1> , < 该表的约束 2> ,……);

数据类型

INTEGER
VARCHAR
DATE

约束

NOT NULL
PRIMARY KEY

表删除

DROP TABLE < 表名 > ;

无法恢复

表修改

ALTER TABLE < 表名 > ADD COLUMN < 列的定义 >;

ALTER TABLE < 表名 > DROP COLUMN < 列名 >;

-- 一定注意添加 WHERE 条件,否则将会删除所有的数据
DELETE FROM product WHERE COLUMN_NAME='XXX';

TRUNCATE TABLE TABLE_NAME;  # 清空

UPDATE <表名>
   SET <列名> = <表达式> [, <列名2>=<表达式2>...]  
 WHERE <条件>  -- 可选,非常重要
 ORDER BY 子句  --可选
 LIMIT 子句; --可选

使用 update 时要注意添加 where 条件,否则将会将所有的行按照语句修改

INSERT INTO <表名> (1,2,3, ……) VALUES (1,2,3, ……);  
-- 对表进行全列 INSERT 时,可以省略表名后的列清单。这时 VALUES子句的值会默认按照从左到右的顺序赋给每一列。

-- 多行INSERT ( DB2、SQL、SQL Server、 PostgreSQL 和 MySQL多行插入)
INSERT INTO productins VALUES ('0002', '打孔器', '办公用品', 500, 320, '2009-09-11'),
                              ('0003', '运动T恤', '衣服', 4000, 2800, NULL),
                              ('0004', '菜刀', '厨房用具', 3000, 2800, '2009-09-20');  
-- 将商品表中的数据复制到商品复制表中
INSERT INTO productcopy (product_id, product_name, product_type, sale_price, purchase_price, regist_date)
SELECT product_id, product_name, product_type, sale_price, purchase_price, regist_date
  FROM Product;  

索引

高效的

-- 方法1
CREATE INDEX indexName ON table_name (column_name)

-- 方法2
ALTER table tableName ADD INDEX indexName(columnName)

练习

  1. 编写一条 CREATE TABLE 语句,用来创建一个包含表 1-A 中所列各项的表 Addressbook (地址簿),并为 regist_no (注册编号)列设置主键约束
  • 一个大括号包住了所有,包括主键

  • 忘记写分号。

  • 忘记写 ‘table’、

    create table addressbook (
    	regist_no int not null,
    	name varchar(128) not null,
    	address varchar(256) not null,
    	tel_no char(10),
    	mail_address char(20),
    primary key (regist_no));
    
  1. 假设在创建练习1.1中的 Addressbook 表时忘记添加如下一列 postal_code (邮政编码)了,请编写 SQL 把此列添加到 Addressbook 表中。
alter table addressbook 
add column postal_code char(8) not null;
  1. 请补充如下 SQL 语句来删除 Addressbook 表。
(    ) table Addressbook;

-- drop
  1. 是否可以编写 SQL 语句来恢复删除掉的 Addressbook 表?

    不可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

__心似大海__

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

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

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

打赏作者

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

抵扣说明:

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

余额充值