linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux数据库 >

MySQL入门基础教程大全

时间:2019-04-10  来源:未知  作者:admin666
UPDATE 表名 SET 字段1=字段值1,字段2=字段值2 WHERE 条件 
# 更新操作会影响数据的不可逆操作,所以更新的时候,一定要谨慎,添加条件。如果没有条件,
# 或者条件的判断结果一直是True,则整个表所有的记录都会被更新。
修改学生的姓名,年龄
UPDATE student set age=8 where id=104;
删除数据(DELETE)
DELETE FROM 表名 WHERE 条件
删除一个学生
DELETE FROM student WHERE id=104;
注: 修改跟删除数据都要记得加条件。

DELETE FROM table 删除整个表的内容[没有条件则表示删除整个表所有数据]

DROP TBALE 表名 删除整个表
删除学生表
DROP TABLE student;
删除学生表的数据
DELETE FROM student; 
TRUNCATE table 清空/重置表[表还在数据被清空了]
create database 数据库名 charset=utf8; 创建数据库
drop database 数据库名 删除数据库[一定要谨慎操作]
5 DDL
CREATE TABLE 表名(
 字段名1 数据类型 约束规则,
 字段名2 数据类型,
 字段名3 数据类型,
 .....
 字段名N 数据类型,
 PRIMARY KEY(一个 或 多个 字段名)
# 上面语句中,最后一个小句子后面不能有英文逗号出现,前面的小句子必须加上英文逗号。

定义字段名,表名、数据库名、规范:

在64个字符以内,建议简短,如果不够清晰,可以使用前缀。

不能是关键字或者保留字

采用变量命名方式[ 由字母、数字、下划线组成,不能以数字开头 ]

数据库里面的数据在保存时,也要通过数据类型来告诉系统,这些数据的用途,所以也会有对应的数据类型:

数值类型[整数和浮点数]、字符串 和 日期

是否唯一[数据在同一个表中的同一列中是否可以出现多个]

是否无符号[约束当前是否可以填写负数,有符号可以填写,无符号不能填写。]

是否设置为当前表的主键[主键是一个表记录不同行数据之间的唯一字段,这个字段必须是唯一的]

是否自动增长[添加数据的时候,如果不填写这个字段,那么这个字段会自动在之前已有的值基础上+1填充]

设置默认值[ 添加/修改数据时,如果值没有填写或者被清空了,采用指定的值作为字段值 ]

是否可以填写空(null,等同于python里面的None)值

创建班级表

create table classes(
 id int unsigned auto_increment primary key not null,
 name varchar(10)
);

例如:创建学生表[原来的数据库中已经存在了一张表,所以练习案例的时候注意,建议新建一个数据库来创建]

mysql create table student(
 - id int unsigned auto_increment not null, # 字段名 整型 无符号 自动增长 不能是空,
 - name char(10), # 字段名 字符串(长度:10)
 - sex int default 1, # 字段名 整型 默认值为 1,
 - class int, # 字段名 整型
 - age int, # 字段名 整型
 - description text, # 字段名 文本[可以填写65535个字符]
 - primary key(id) # 设置主键(id) 每个表必须都有主键
 - ) engine=innodb charset=utf8; # 表引擎=innodb 编码=utf8;[后面学习,先用]
Query OK, 0 rows affected (0.02 sec) # 出现这句话,表示创建表成功
mysql desc student; # 显示表结构
+-------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | char(10) | YES | | NULL | |
| sex | int(11) | YES | | 1 | |
| class | int(11) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| description | text | YES | | NULL | |
+-------------+------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

自己动手创建一个课程表

create table `course`(
 id int unsigned not null auto_increment,
 course char(20) not null,
 lecturer int unsigned,
 address int unsigned,
 primary key(id)
) engine=innodb charset=utf8;

数据库操作记录:

mysql create table `course`(
 - id int unsigned not null auto_increment,
 - course char(20) not null,
 - lecturer int unsigned,
 - address int unsigned,
 - primary key(id)
 - ) engine=innodb charset=utf8;
Query OK, 0 rows affected (0.01 sec)
显示建表语句
show create table 表名 \G;
mysql show create table course \G;
*************************** 1. row ***************************
 Table: course
Create Table: CREATE TABLE `course` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `course` char(20) NOT NULL,
 `lecturer` int(10) unsigned DEFAULT NULL,
 `address` int(10) unsigned DEFAULT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

修改表-添加字段

alter table 表名 add 列名 类型;
alter table students add birthday datetime;

修改表-修改字段:重命名版

alter table 表名 change 原名 新名 类型及约束;
alter table students change birthday birth datetime not null;

修改表-修改字段:不重命名版

alter table 表名 modify 列名 类型及约束;
alter table students modify birth date not null;

修改表-删除字段

alter table 表名 drop 列名;
alter table students drop birthday;

删除表

drop table 表名;
drop table students;

查看表的创建语句

show create table 表名\G;
show create table student\G;
6 数据类型

了解数据的数据类型可以通过以下语句来查看和使用帮助:

mysql ? 查询关键词
# 如果,我们希望了解关于int的可以填值范围
mysql ? int

使用数据类型的原则:够用就行,尽量使用取值范围小的,而不用大的,这样可以更多的节省存储空间

常用数据类型如下: 整数:bit[0-64],tinyint, smallint, int 小数:decimal 字符串:varchar,char 日期时间: date, time, datetime 枚举类型(enum) 多选一,例如性别字段 enum('男','女'),后面添加数据时,值得填写只能'男'和'女'这两项,其他值填写进来会报错。
上一篇:MySQL query
友情链接
  • Mozilla发布Firefox 67.0.4,修复沙箱逃逸漏洞
  • 蚂蚁金服正式成为CNCF云原生计算基金会黄金会员
  • Firefox 68将采用Microsoft BITS安装更新
  • OpenSSH增加对存储在RAM中的私钥的保护
  • 谷歌想实现自己的curl,为什么?
  • Raspberry Pi 4发布:更快的CPU、更大的内存
  • Firefox的UA将移除CPU架构信息
  • Ubuntu放弃支持32位应用程序实属乌龙,Steam会否重回Ubuntu怀抱
  • Qt 5.13稳定版发布:引入glTF 2.0、改进Wayland以及支持Lottie动
  • 红帽企业Linux 7现已内置Redis 5最新版
  • Slack进入微软内部禁用服务清单,GitHub也在其列?
  • 安全的全新编程语言V发布首个可用版本
  • Windows Terminal已上架,快尝鲜
  • 阿里巴巴微服务开源生态报告No.1
  • 面世两年,Google地球将支持所有基于Chromium的浏览器
  • 推进企业容器化持续创新,Rancher ECIC千人盛典完美收官
  • CentOS 8.0最新构建状态公布,或于数周后发布
  • Debian移植RISC
  • 微软拆分操作系统的计划初现雏形
  • Oracle发布基于VS Code的开发者工具,轻松使用Oracle数据库
  • Ubuntu 19.10停止支持32位的x86架构
  • 微软为Windows Terminal推出全新logo
  • 联想ThinkPad P系列笔记本预装Ubuntu系统
  • 微软发布适用于Win7/8的Microsoft Edge预览版
  • 启智平台发布联邦学习开源数据协作项目OpenI纵横
  • 经过六个多月的延迟,微软终于推出Hyper
  • ZFS On Linux 0.8.1 发布,Python可移植性工作
  • DragonFly BSD 5.6.0 发布,HAMMER2状态良好
  • Linux Kernel 5.2
  • CentOS 8.0 看起来还需要几周的时间
  • 百度网盘Linux版正式发布
  • PCIe 6.0宣布:带宽翻倍 狂飙至256GB/s
  • PHP 7.4 Alpha 发布,FFI扩展,预加载Opcache以获得更好的性能
  • Canonical将在未来的Ubuntu版本中放弃对32位架构的支持
  • Scala 2.13 发布,改进的编译器性能
  • 微软的GitHub收购了Pull Panda,并且使所有订阅完全免费
  • Windows Subsystem for Linux 2 (WSL 2)现在适用于Windows 10用
  • Debian 10 “Buster”的RISC
  • MariaDB宣布发布MariaDB Enterprise Server 10.4
  • DXVK 1.2.2 发布,带来微小的CPU开销优化
  • DragonFlyBSD 5.6 RC1 发布,VM优化,默认为HAMMER2
  • PrimeNG 8.0.0 发布,支持Angular 8,FocusTrap等
  • GIMP 2.10.12 发布,一些有用的改进
  • 清华大学Anaconda 镜像服务即将恢复
  • Debian GNU/Linux 10 “Buster” 操作系统将于2019年7月6日发布
  • 时时彩论坛
  • 五星体育斯诺克
  • 北单比分直播
  • 河北11选5走势图
  • 福建体彩36选7开奖结果
  • 九龙图库下载