关于MySQL数据库的了解和基本操作

1、数据库分类

多张表构成的集合

SQL (Structured Query Language) 结构化查询语言

  • 关系型数据库 – 本质上使用一张二维表来表示关系

    数据行
    数据列
    数据表 (数据行的集合)
    数据库 (数据列的集合)

  • 非关系型数据库

2、SQL语句:

SQL是关系型数据库客户端 操作 关系型数据库服务器的一种语法

DQL:数据查询语句 select
DML:数据操作语言,insert,update。。。。
DDL:数据定义语言,create,drop

不区分大小写

启动服务:

sudo service mysql start /stop/restart/statu

3、约束

  • 主键 primary key
    根据主键唯一确定的一行记录,一般都是无符号整数,自动递增

  • 非空 not null
    表示该字段的值,不允许为空

  • 唯一 unique
    要求该字段的值,不允许重复

  • 默认 default
    如果这个字段没有值,那么就使用默认值

  • 外键 foreign key
    如果一张表中有一个非主键的字段指向了别一张表中的主键,就将该字段叫做外键。
    一张表中可以有多个外键。
    外键的默认作用有两点:
      1. 对子表(外键所在的表)的作用:子表在进行写操作的时候,如果外键字段在父表中找不到对应的匹配,操作就会失败。
      2. 对父表的作用:对父表的主键字段进行删和改时,如果对应的主键在子表中被引用,操作就会失败。

4、数据库操作流程

  1. 创建一个数据库
  2. 创建一个表结构<字段名 字段类型 字段约束>
  3. 操作表数据

5、数据库操作

连接数据库

mysql -u root -p 或者  mysql -uroot -p  或者mysql -u root -pmysql

退出数据库

exit  或者  quit   或者  ctrl+D

以下SQL语句以分号结尾

展示当前数据库系统中所有的数据库

show databases;

查看当前使用的数据库

select database();

切换到指定数据使用

use py12;

查看当前时间

select now();

创建数据库

create database python12 charset=utf8;   (charset选定字符集,utf-8中 - 不能识别  所以去掉)

展示数据库创建时SQL语句

show create database db2

删除数据库

drop database db2

6、表结构操作

查看当前数据库下的所有的表

show tables;

查看表结构的信息

desc stu

创建表结构

create table student(
	id int unsigned primary key auto_increment,
	name varchar(32) not null,
	age tinyint unsigned default 0
);

展示创建表结构的SQL语句

show create table student;

修改表名

alter table table_name rename table_new_name
alter table student rename student1

修改表

添加字段 列名 类型

alter table student add birthday datetime not null;

删除字段

alter table student drop birthday;

修改字段的名字,类型,约束
把birthday 改为 birth 类型改为date类型

alter table student change birthday birth date;

不改名,只改约束和类型

alter table student change birth birth date not null;
alter table student modify birth date not null;

7、表数据的操作<重点>

  • 查询

    从stu中查询出所有的字段数据

     select * from stu;
    

    从stu中查询出年龄,名字的字段数据

     select age,name from stu;
    
  • 插入

    关键字 关键字 表名 数据顺序 关键字 数据

      insert into student (id,name,age) values (0,'大黄',80);
    

    全列插入 – 插入数据的顺序 和 表结构中的字段完全一致时可以省略

      insert into student values (0,'大黄',80);
      
      insert into student values (null,'妲己',18),(null,'亚瑟',90);
    

    数据类型保证数据完整性,会报错,age是tinyint unsigned 0-255

      insert into student (id,name,age) values (0,'xxx',8080);
    

    部分列插入

      insert into student (age,name) values (88,'貂蝉'),(90,'王昭君')
    
  • 更新

    update 表名 set 字段名=新值 where 条件;

      	update student set age = 18;
      	
      	update student set age = 17 where id = 4;
      	update student set name = '盖伦', age = 17 where id = 3;
      	update student set age = 16 where id > 2;
    

    更新所有id

      update student set id = id - 16 where id > 1;
    
  • 删除

    delete from 表名

      delete from student where name = '程咬金';
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值