day26:mysql建库|数据库操作|创建表|表操作

概念

  • MangoDB 非关系型,爬虫用,适用于不同来源网站的
  • Redis 缓存
  • MySql 关系型数据库又快又省钱
  • MariaDB Mysql创始人成立的分支计划,兼容mysql
  • Oracle 12c是最新版本
  • DB2 行业用得多
  • SQL Server 受Mysql冲击大
  • PostgreSQL 开源

SQL

sql是一种非面向过程语言,分为:

  • DDL 数据定义语言,定义表\数据库,删除它们 create drop
  • DML =数据操作语言 insert update insert=
  • DQL ===数据查询语言 select ===
  • DCL 数据控制语言 grand revoke
  • TPL 事务处理语言 commit rollback

mysql操作

数据库操作

  • 连接数据库
    mysql -u root -p (u表示user,p表示password,怕明文显示不安全所以p后不直接输入密码,而是回车后才开始输入密码,此时呈现*号)
  • 退出数据库
    quit
  • 显示数据库
    show databases; #分号或\g表示执行
  • 创建数据库
    create database student default charset=utf8; # 缺省字符集是utf8
  • 删除数据库
    drop student
  • 选择数据库
    use student
  • 显示表
    show tables
  • 查看数据库创建语句
    show create database student; #student | CREATE DATABASE student /*!40100 DEFAULT CHARACTER SET utf8 */
  • 查看当前数据库名
    select database();
  • 修改字符集
    alter database student default charset=utf8;

创建表(有个坑)

mysql8.0版本: 创建表时不能以rank为表名,也不能以rank为字段名

create table if not exists rank(down numeric(3) not null,up numeric(3) not null,rank varchar(1) primary key);  #报错
  • 语法
    create table [if not exists] 表名(
    列名1 类型 [限制],
    列名2 类型 [限制],
    列名3 类型 [限制],

    列名n 类型 [限制] #最后一列没有逗号
    ) [engine=myisam | innodb][default charset=utf8]

  • 类型:

    • 数值型 : 整型 int smallint tinyint 浮点型:float double decimal ,常用int,double
    • 字符型:char,varchar,text
    • 日期时间型:date(YYYY-MM-DD) time(HH:MM:SS) datetime(YYYY-MM-DD HH:MM:DD)
  • 限制

    • primary key [auto_increment]
    • not null
    • default # 如default 0
    • unique 两个null不违反unique
  • 例子
    create table if not exists student(
    sno char(4) primary key,
    sname varchar(30) not null,
    sage tinyint default 0,
    ssex int default 0,
    sclass char(5)
    );

  • 复合主键 primary key(sno,cno)

  • auto_increment 自增长,只对int型主键起作用

  • 例子:
    create table if not exists student(
    -> sno char(4) ,
    -> sname varchar(30) ,
    -> sage tinyint default 0,
    -> ssex int default 0,
    -> sclass char(5),
    -> primary key(sno,sname),
    -> );

表操作

  • 插入记录
    insert into 表名(sno,sname) values(“001”,“张三”);
  • 删除表 drop table student
  • 显示表结构 desc student #desc即describe的意思
  • 查看创建表命令 show create table student;
  • 显示索引show index in student;
  • 复制表操作 create table 表名 like 其他表名
  • 查看表结构 desc 表名
  • 修改表 alter table 表名 modify 字段名 类型 [限制]
  • 增加字段 alter table 表名 add 字段名 类型 [限制]
  • 删除字段 alter table 表名 drop 字段名
  • 修改字段名和类型 alter table 表名 change 旧字段名 新字段名 类型 [限制]
  • 修改表名 alter table 表名 rename 新表名
  • 在某个字段后或最开始位置插入字段 alter table 表名 add 字段名 类型 [限制] [after 字段 | first
 alter table student add sno varchar(10) primary key first;
 alter table student add shome varchar(50) after sno;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值