mysql 基础
概念
Database
长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库
保存、管理数据
分类
关系型
- mysql 处理数据的阀值
- oracle
- sqlServer (微软)
- DB2 (IBM 公司 )
- SQLite
非关系型
Redis、MongoDB
安装配置mysql
配置path
path 是环境变量
windows 运行一些内容 是通过path 来运行的
在没有配置环境变量之前
C:\Users\Administrator>mysql
'mysql' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
配置mysql 的环境变量
好处 可以在任意目录中 登录 mysql
mysql 登录
mysql -h服务器主机地址 -u 用户名 -p密码
mysql -h 127.0.0.1 -uroot -p123456
简写
mysql -u用户名 -p
配置环境变量
打开 Win + R 输入 cmd
进入到mysql 的 安装目录
在命令行中输入以下命令
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
执行登录命令
// 执行 mysql 命令 携带参数 -u用户名 -p密码
mysql -uroot -p
在输入密码之后显示界面如下
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 5.7.19-log MySQL Community Server (GPL)
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
退出命令
exit;
sql语句
mysql oracle 以及其他各种数据库 相类似的
标准的 , 命令式 语句
分类
名称 | 解释 | 命令 |
---|---|---|
DDL 数据定义语言 | 定义和管理数据对象 如数据库. 数据表等(数据容器) | create drop alter |
DML 数据操作语言 | 用于操作数据库对象 所包含的数据 | insert update delete |
DQL 数据查询语言 | 用于查询数据库数据 | select |
DCL 数据控制语言 | 用来管理数据库中的语言 包括管理权限以及数据更改 | grant revoke |
数据库操作
mysql -h 127.0.0.1 -uroot -p123456
查看当前mysql中有哪些数据库
show databases;
新建数据库
create database phonenum;
#Query OK, 1 row affected (0.00 sec)
使用(进入)数据库
use phonenum
# Database changed
(切换)更改进入数据库
use mysql
查询当前数据库中的所有表
show tables;
查询表中的数据
select * from user;
删除数据库
drop database [if exists] 数据库名;
创建表格式
创建表
use phonenum
# 表格 是有表头的
create table phones(
name varchar(50) ,
phoneno varchar(11)
);
删除表
drop table [if esists] 表名;
drop table phones;
# 表不存在 ERROR 1051 (42S02): Unknown table 'phones'
drop table if exists phones;
# Query OK, 0 rows affected, 1 warning (0.00 sec)
表格的格式
CREATE TABLE [ IF NOT EXISTS ] `表名` ( # 反引号 (可选、区别于单引号)
`字段名1` 列类型 [ 属性 ] [ 索引 ] [注释] ,
`字段名2` 列类型 [ 属性 ] [ 索引 ] [注释] ,
… …
`字段名n` 列类型 [ 属性 ] [ 索引 ] [注释]
) [ 表类型 ] [ 表字符集 ] [注释] ;
数据类型
- 数值类型
- 字符串
- 日期
- null
char 和 varchar 的区别
char 是固定长度的字符串
name char(100) 给name分配 100长度的空间,如果name占用不足100 使用空格填充
varchar 可变长度的字符串 (节约空间 , 使用率更高)
name varchar(100) 给name分配 100长度的空间,如果name占用不足100 自动缩小内存占用
null 值
意义 : 没有值
不要使用null 来进行算术运算, null 和 任何值做运算, 结果都为null
数据字段属性
UNSIGNED 无符号的 声明该数据列不允许负数
ZEROFILL 0填充的 不足位数的用0来填充,如 int(3) , 5则为 005
AUTO_INCREMENT
自动增长的,每添加一条数据,自动在上一个记录数上加1
通常用于设置主键,且为整数类型
可定义起始值和步长
NULL 和 NOT NULL 默认为NULL,即没有插入该列的数值
如果设置为NOT NULL,则该列必须有值
DEFAULT 用于设置默认值
数据字段注释
语法 字段属性/ 表右括号之后 添加 COMMENT '注释信息'
CREATE TABLE [ IF NOT EXISTS ] `test` (
`id` int (11) UNSIGNED COMMENT ‘编码号’
) COMMENT=‘测试表’;
案例
表的类型设置
表的字符集设置
charset = utf-8;
修改数据库表
查看表结构
desc 表名
修改表名
alter teble 旧表名 rename as 新表名
alter table phones rename as phonenums;
添加新字段
alter table 表名 add 字段名 字段类型 [属性]
alter table phonenums add address varchar(255) default '青岛';
修改字段类型,属性
alter table 表名 modify 字段 新的类型[属性]
alter table phonenums modify address varchar(255) default '济南';
修改字段名称
alter table 表名 change 旧字段名 新字段名 新字段名的类型[属性]
alter table phonenums change address addr varchar(255) default '济南';
删除字段
alter table 表名 drop 字段名
alter table phonenums drop addr;
DML 数据操作语言
案例
create database if not exists school ;
use school
create table student(
sid int(5) not null COMMENT '学生编号',
sname varchar(50) not null COMMENT '学生姓名',
saddr varchar(255) default '青岛' COMMENT '学生地址'
);
新增数据
给所有值新增数据
insert into 表名 values (按照表的所有字段顺序,依次插入值);
insert into student values (10086,'毕吉伦','青岛崂山');
# Query OK, 1 row affected (0.01 sec)
给指定值新增数据
insert into 表名 (字段1,字段2) values (值1, 值2);
insert into student (sid,sname) values (10010, '孙继斌');
一条语句添加多行数据
insert into 表名 (字段1,字段2) values (值1, 值2),(值1, 值2),(值1, 值2);
insert into student (sid,sname) values (12306, '宫骏腾'),(12315, '周书建');
查询命令
select * from 表名;
select * from student;
授权其他用户访问该数据库
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;