Mysql数据库教程
前言
• 命令行登录Mysql
格式: mysql -h 主机地址 -u用户名 -p 用户密码
例 1:连接到本机上的 MySQL。
ye@ubuntu:~$ mysql -uroot -p mysql;
例 2:连接到远程主机上的 MYSQL。
ye@ubuntu:~$ mysql -h 127.0.0.1 -uroot -p mysql;
• 第三方工具:Navicat
• mysql端口号:3306
库的基本操作
创建库
create database 数据库名;
删除库
drop database 数据库名;
查看现有的数据库
show databases;
一、数据类型
MySQL支持多种数据类型,大致分为三类:
• 数值
• 日期/时间
• 字符串(字符)类型
1.1 数值型
MySQL支持所有标准sql数值数据类型:
注: 整数常用int,小数常用decimal
1.2 日期和时间类型
日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
注:记住类型和格式。重点掌握 DATETIME YYYY-MM-DD HH:MM:SS
1.3 字符串类型
• 字符串类型指CHAR(固定长度)、VARCHAR(可变长度)、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
• CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。
• BINARY和VARBINARY类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。
• BLOB是一个二进制大对象,可以容纳可变数量的数据。有4种BLOB类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。
• 有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
注:重点掌握CHAR(字符串长度)和VARCHAR(字符串长度)。
区别:CHAR(长度) 定长,给他设置多大的长度,它就会把所有的长度空间全部占满,多的不会释放,会用空格进行填充;VARCHAR(长度) 变长,它是以实际的长度来占用空间,多的释放。
二、表的操作
2.1 创建表
注:每一次建表前,都要明确该表隶属于哪一个库。一定是在某一个库下进行建表操作。
• 表的创建语法
Create table 表名(
属性名 数据类型 [约束条件],
属性名 数据类型 [约束条件],
属性名 数据类型 [约束条件]
);
• []中括号种的内容是可选内容
• 最后一个属性后没有逗号
-- 新建教师表(教师编号,姓名,年龄,薪资,入职日期)
create table 教师表(
教师编号 varchar(10),
姓名 char(6),
年龄 int,
薪资 decimal(5,2),
入职日期 datetime
);
注:在navicat中,“打开表”–>看表中内容,”设计表“–>看表结构
命令切换数据库
格式:USE 数据库名字
-- 在”数据库“下,新建一个学生表(学号,姓名,年龄)
-- 因为目前还是在destdb库中,所以先来进行库的切换
use 数据库;
create table 学生表(
学号 varchar(6),
姓名 varchar(10),
年龄 int
);
注:navicat中ctrl+s可保存代码。保存过的代码可在左侧”查询“中找到,右击”在文件夹中显示“,默认后缀为.sql,可用记事本打开。
2.2 删除表
格式::drop table 表名;
删除多个表
•drop table 表名1,表名2…
-- 删除学生表
drop table 学生表;
2.3 修改表
添加列(属性)
• alter table 表名 add 属性名 数据类型;
删除列(属性)
• alter table 表名 drop 属性名;
修改属性
• alter table 表名 modify 属性名 新的数据类型;
修改字段名
• alter table 表名 change 旧字段名 新字段名 数据类型;
-- 给学生表添加一个专业列 字符串 10
alter table 学生表 add 专业 varchar(10);
-- 给学生表添加一个出生日期列 datetime
alter table 学生表 add 出生日期 datetime;
-- 删除学生表中出生日期列
alter table 学生表 drop 出生日期;
-- 把教师表的薪资改成整数类型int
alter table 教师表 modify 薪资 i