MySQL常见语句,DDL

本文深入讲解SQL语言的核心组件,包括DML、DDL、DCL及事务控制语句,详细介绍如何创建、修改、删除表和数据,以及如何使用各种约束如NOT NULL、UNIQUE、PRIMARY KEY和FOREIGN KEY来确保数据的完整性和一致性。

DML:(数据操作语言) insert update delete
DDL:(数据定义语言) create alter drop truncate
DCL:(数据控制语言) grant revoke
事务控制语句:commit rollback savepoint
创建表: create table [模式名:]表名
        (
        --定义多个列
        columnName1 datatype[default expr],
        
        );
        eg: create table mytable
        (
        table_id int,
        table_price decimal,
        table_name varchar(255) default 'hahh'
        );
   使用子查询创建表:create tale[模式名:]表名
                       [column(,column...)]
                       as subquery;
                   eg:create tale  test
                       as
                       select* from mytable;
修改表结构(增加列,增加列定义,修改列定义,删除列,重命名列):
        alter table 表名
        add
        (
        columen_name1 datatype [default expr],
        )
        eg:为mytable添加字段
        alter table mytable
        add table_age int;
        eg2:为mytable添加字段
        alter table mytable
        add (
        table_age int ,
        table_name varchar(255)
        );
修改列定义:alter table 表名
            modify column_name datatype[default expr] [first|after col_name];
        eg:修改mytable中的table_age
        alter table mytable
        modify table_age varchar(255);
删除列: alter table 表名
        drop column_name
        eg:删除table_age 
        alter table mytabel 
        drop table_name;
修改表名:alter table 表名
            rename 表名
            eg: alter table mytable
            rename newtable;
修改列名:alter table 表名
        change old_column_name new_column_name type    [default expr] [first|after col_name];
        eg: alter table newtable
        change table_id table_newid;
删除表: drop table 表名;
        eg:drop table test;
        删除表之后,表对象不存在
        表中所有数据被删除
        表所有相关索引,约束被删除
删除表中数据:truncate 表名;
        删除表中数据,但是保留表结构
        
        
        
约束:
  NOT NULL :非空约束,指定列不能为空
  UNIQUE:唯一约束,指定某列或者几列组合不能重复
  PRIMARY KEY:主键,指定列的值可以唯一标识该条数据
  FOREIGN KEY:外键,指定该行记录从属主表中的一条记录,用于保存参照完整性
  CHECK:检查
  NOT NULL:create table mytable
        (
        --建立非空约束,
        table_id int NOT NULL,
        --table_price 可以为空
        table_price decimal NULL,
        table_name varchar(255) default 'hahh'
        );
        使用alter table增加/删非空约束
        alter table mytable
        modify table varchar(255) default 'hahh' not null;
        alter table mytable
        modify table varchar(255) default 'hahh' null;
        
UNIQUE: create table mytable
        (
        table_id int NOT NULL,
        table_price decimal NULL,
        --unique唯一约束,使用列级约束语法建唯一约束
        table_name varchar(255) default 'hahh' unique
        );
        为多列组合建立唯一约束:
        [constraint 约束名] 约束定义
        eg:create table mytable
        (
        table_id int NOT NULL,
        table_price decimal NULL,
        --使用表级约束语法建立唯一约束
        unique(table_id),
        --使用表级约束语法建立唯一约束,并且制定约束名
        constraint table_uk unique (table_price)
        );
        使用alter添加唯一约束:
        eg: 使用add
        alter atble mytable 
        add unique (table_id ,table_price);
        eg;使用modify 
        alter table mytable
        modify table_id int unique;
        删除唯一约束:
        alter table mytable 
        drop index table_uk;(删除mytable表上的table_uk唯一约束)
PRIMARY KEY:
            建表时创建:
        一.  create table mytable
        (
        table_id int primary key,
        table_price decimal,
        table_name varchar(255) default 'hahh'
        );
        二。  create table mytable
        (
        table_id int,
        table_price decimal,
        table_name varchar(255) default 'hahh',
        constraint test_pk primary key(table_id)
        );
        三    create table mytable
        (
        table_id int,
        table_price decimal,
        table_name varchar(255) default 'hahh',
        primary key(table_id,table_price)
        );
        删除主键约束:
        alter table mytable
        drop primary key;
        添加主键约束:
        alter table mytable
        add primary key(table_id);
        
        设置自增长
         create table mytable
        (
        --建立主键约束,使用自增长
        table_id int auto_intcrement primary key,
        table_price decimal,
        table_name varchar(255) default 'hahh'
        );
        
FOREIGN KEY:
         create table teacher
        (
        teacher_id int auto_intcrement primary key,
        table_name varchar(255) default 'hahh'
        );
         create table students
        (
        student_id int auto_intcrement primary key,
        student_name varchar(255) default 'hahh',
        --制定java_teacher 参照到teacher的teacher_id 列
        java_teacher int references teacher(teacher_id)
        );
          
          表级约束语法:
           create table teacher
        (
        teacher_id int auto_intcrement primary key,
        table_name varchar(255) default 'hahh'
        );
         create table students
        (
        student_id int auto_intcrement primary key,
        student_name varchar(255) default 'hahh',
        java_teacher int ,
        foreign key(java_teacher) references teacher(teacher_id)
        );
        
        
创建索引:create index index_name
            on table_name (column);
        删除索引:drop index 索引名 on 表名
        eg: drop index emp_name 
           on employees
           
创建视图: create or replace view 视图名
        as
        subquery;(查询语句)(如果视图不存在,则创建,存在,新视图替换旧的视图)
        eg: create or replace view view_tesst
        as
        select * from teachertable;
        删除视图:drop view 视图名
        eg: drop view view_test;

MySQL数据库中,SQL语句是进行数据库操作的核心工具。根据功能的不同,SQL语句主要可以分为以下几类: ### 数据定义语言 (DDL) 用于定义数据库对象,例如数据库、表、字段等。 - 创建数据库: ```sql CREATE DATABASE example_db; ``` - 创建表: ```sql CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), email VARCHAR(100) ); ``` - 删除表: ```sql DROP TABLE users; ``` ### 数据操作语言 (DML) 用于对数据库表进行增删改操作。 - 插入数据: ```sql INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com'); ``` - 更新数据: ```sql UPDATE users SET email = 'new_email@example.com' WHERE id = 1; ``` - 删除数据: ```sql DELETE FROM users WHERE id = 2; ``` ### 数据查询语言 (DQL) 用于查询数据库表的记录。 - 查询所有记录: ```sql SELECT * FROM users; ``` - 查询特定字段: ```sql SELECT name, email FROM users; ``` - 条件查询: ```sql SELECT * FROM users WHERE id > 1; ``` ### 连接查询 用于在多个表之间进行查询操作。 - 内连接 (INNER JOIN): ```sql SELECT u.name, o.order_id FROM users u INNER JOIN orders o ON u.id = o.user_id; ``` - 左连接 (LEFT JOIN): ```sql SELECT u.name, o.order_id FROM users u LEFT JOIN orders o ON u.id = o.user_id; ``` ### 数据控制语言 (DCL) 用于创建数据库用户并控制数据库的访问权限。 - 创建用户: ```sql CREATE USER 'new_user'@'localhost' IDENTIFIED BY 'password'; ``` - 授予权限: ```sql GRANT ALL PRIVILEGES ON example_db.* TO 'new_user'@'localhost'; ``` 以上内容涵盖了MySQL中最常用的SQL语句,这些语句能够满足大多数数据库管理需求,并帮助用户高效地操作数据库。通过实际练习和项目应用,可以更深入地掌握这些核心功能。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值