MySQL基础知识

SQL

        1.什么是SQL?
            Structured Query Language:结构化查询语言
            其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。
    
        2.SQL通用语法
            1. SQL 语句可以单行或多行书写,以分号结尾。
            2. 可使用空格和缩进来增强语句的可读性。
            3. MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。
            4. 3 种注释
                * 单行注释: -- 注释内容 或 # 注释内容(mysql 特有) 
                * 多行注释: /* 注释 */
    
        3. SQL分类
            1)DDL(Data Definition Language)数据定义语言
        用来定义数据库对象:数据库,表,列等。关键字:create, drop,alter 等
            2) DML(Data Manipulation Language)数据操作语言
                用来对数据库中表的数据进行增删改。关键字:insert, delete, update 等
            3) DQL(Data Query Language)数据查询语言
                用来查询数据库中表的记录(数据)。关键字:select, where 等
            4) DCL(Data Control Language)数据控制语言(了解)
                用来定义数据库的访问权限和安全级别,及创建用户。关键字:GRANT, REVOKE 等

操作数据库 表

        创建表    

                 语法:

                        create table 表名(

                                字段名 数据类型  [字段特征] [default修饰的默认值],

                                字段名 数据类型  [字段特征] [default修饰的默认值],

                                ...

                                字段名 数据类型  [字段特征] [default修饰的默认值],

                        )

1    create table student(
2        id int,       
3        sname char(10)
4        gender char(10),
5    )
    注意:创建最后一行字段名不需要加逗号

        查看表结构

1    create table student(
2        id int,       
3        sname char(10)
4        gender char(10),
5    )
6// 查看表结构
7    desc student;

        查看表中所有数据

1    //查看表中所有数据
2    语法:
        select * from 表名;
3    select * from  student;

        添加数据

# primary key (关键字)
# 表示为标识的列,为主键列,该列不空且不能重复

# 场景1
# 在非主键表里添加记录
# insert 语法
# insert into 表名(字段列表) values(列值列表);
# 此表无主键,mysql内核会自动分派一个伪列(_row_id)
insert into student (id,sname,gender) values (1,'张三','男');
select * from  student;

# 场景2
# 当表名后的字段列表不是默认的列表时,values的列值列表必须与其保持一致
insert into student (id, gender,sname) values ('李四',1,'男');
select * from student;

#场景3 
# 当表名后的字段列表省略不写时,values后的列值列表必须与创建表时的字段列表顺序一致
insert into student  values (2,'王五','女');
select * from student;

# 场景5
# 当values后的列值列表未给值时,则默认使用null填充
insert into student(id,sname) values (3,'麻六');
select * from student;

# 设置默认值
create table student02(
	id int not null , 
	sname char(10) not null default '', 
	gender char(4) not null default '男', 
	primary key(id)
)
desc student02;
select * from student02;

# 创建联合主键:(由多于1个字段组成的主键)
create table foreignPerson( 
	firstName char(20),
	lastName char(20), 
	gender int , age int , 
	primary key (firstName,lastName)
) 
desc foreignPerson;
insert into foreignPerson values('弗拉基米尔','帕柳卡',1,30);
select * from foreignPerson;

# 场景5:创建带自增的主键
create table student03(
	id int primary key auto_increment,
	sname varchar(20),
	age int
)
insert into student03(id,sname,age) values (1,'张三',18);
insert into student03 values (0,'李四',19);
insert into student03 values (0,'王五',20);
select * from student03;

# 场景6-1:批量添加数据
insert into student03(id,sname,age) values (5,'麻六',21);
insert into student03(id,sname,age) values (0,'狗七',22);
insert into student03(id,sname,age) values (0,'老八',23);
select * from student03;

# 场景6-2:批量添加数据
insert into student03(id,sname,age) values (0,'喜九',24),(0,'吃十',25);
select * from student03;

        修改数据

# 场景7-1:修改表--添加字段
alter table student03 add birthday date;
alter table student03 add gender char(10);
desc student03;

# 场景7-2:修改表--修改记录
update student03 set gender = '男' where sname = '张三';
select * from student03;
update student03 set birthday = '2000-2-18'where id = 2;
select * from student03;

# 场景7-3:修改表--修改字段类型
alter table student03 modify sname char(30);
desc student03;

# 场景7-4:修改表--删除字段
alter table student03 drop gender;

        删除数据  

# 场景8-1: 删除记录
delete from student03 where id > 6;
select * from student03;

# 场景9-1:截断表(当全表删除时,且数据量特别大时,非常有效),保留表结构
truncate table student03;
desc student03;
select * from student03;

# 场景9-2 :删除记录
show tables;
select * from student; 
drop table student;
# 场景9-3: 
delete 、drop、truncate区别
    delete :删除满足条件的记录
    drop: 删除表+全部记录
    truncate:删除全部记录,但保留表结构

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MySQL是一种关系型数据库管理系统,它可以用来存储和管理数据。以下是一些MySQL基础知识: 1. 数据库MySQL中的数据库是一个容器,用于存储数据表和其他对象。 2. 数据表:数据表是MySQL中的基本对象,用于存储数据。每个数据表都有一个唯一的名称,并且包含一些列,每列都有一个数据类型。 3. 列:列是数据表中的一个字段,用于存储特定类型的数据。每个列都有一个名称和一个数据类型。 4. 行:行是数据表中的一个记录,包含一组值,每个值都对应一个列。 5. 主键:主键是数据表中的一个列,用于唯一标识每个记录。主键列的值必须是唯一的,并且不能为NULL。 6. 外键:外键是一个列,它引用了另一个表中的主键列。外键用于建立表之间的关系。 7. 索引:索引是一种数据结构,用于加快数据检索速度。MySQL支持多种类型的索引,包括B树索引和哈希索引。 8. 视图:视图是一个虚拟的表,它是由一个或多个数据表的查询结果组成的。视图可以简化复杂的查询,并提高查询性能。 9. 存储过程:存储过程是一种预编译的代码块,它可以接受参数并返回结果。存储过程可以简化复杂的操作,并提高数据库性能。 10. 触发器:触发器是一种特殊的存储过程,它会在数据表上执行特定的操作。触发器可以用于实现数据约束和业务逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值