MySQL配置
1,环境变量配置:
例如MySQL安装在E:\mysql-5.6.24-win32
我的电脑–》属性–》–》高级系统设置–》环境变量–》PATH–》追加E:\mysql-5.6.24-win32–》保存
2,配置my-default.ini
文件安装目录,安装目录里面的data目录
basedir =E:\mysql-5.6.24-win32\bin
datadir =E:\mysql-5.6.24-win32\data
3,安装MySQL
管理员身份进入cmd–》E:\mysql-5.6.24-win32–》输入mysqld -install –>安装成功
4,启动MySQL服务
net start mysql
mysql -u root -p –>回车,第一次进入不需要密码
net stop mysql –>停止服务
MySQL默认端口号:3306
修改mysql提示符
方式一:连接客户端时通过参数指定
shell>mysql -uroot -proot -prompt 提示符
方式二:连接上客户端后, 通过prompt命令修改
mysql>prompt 提示符
prompt 修改提示符
\h:主机名
\D:日期
\d:当前数据库
\h:服务器名称
\u:当前用户
MySql语句规范:
①关键字和函数名称全部大写
②数据库名称、表名称、字段名称全部小写
③SQL语句必须以分号结尾
常用语句
SELECT VERSION(); 查询当前服务器版本
SELECT NOW(); 查询当前日期时间
SELECT USER(); 查询当前用户
初涉MySQL——操作数据库
一、数据库创建:CREATE
1、语法:CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name [DEFAULT] CHARACTER SET [=] charset_name.
2、DATABASE和SCHEMA是相同的,任选其一
3、IF NOT EXISTS:如果创建的数据库存在,则不只报出warning,不写会报错
4、CHRARCTER SET gbk:为表设置编码方式,如果不设置则用mysql默认的编码方式
二、查看数据库列表:SHOW
1、SHOW { DATABASE | SCHEMAS } [LIKE ‘pattern’ | WHERE expr]
2、SHOW CREATE DATABASE xx:显示xx数据库信息
三、数据库的修改:ALTER
1、修改数据库编码方式:ALTER { DATABASE | SCHEMAS } [db_name][DEFAULT] CHARACTER SET [=] charset_name
四、删除数据库:DROP
1、删除数据库:DROP { DATABASE | SCHEMAS } [IF EXISTS] db_name;
mysql -uroot -proot prompt \D –修改mysql操作符为当前日期
show databases –展示所有数据库
create database if not exists t1 character set gbk; –创建数据库
show create database t1; –展示数据库t1的创建命令和编码形式
–修改数据库编码格式
alter database t2 character set =utf8;
–删除数据库
drop database if exists t1;
–展示警告信息
show warnings;
五,数据库的常用操作
1–打开数据库
USE db_name;
2.查看当前数据库
SELECT DATABASE();
表的操作
1,创建表
CREATE TABLE [IF NOT EXISTS] table_name(
column_name data_type,
column_name data_type,
)
2,查看数据表
1.SHOW TABLES:查看当前数据库中的数据表
2.SHOW TABLES FORM mysql:查看所有数据库中的数据表
3,查看数据表类型:SHOW COLUMNS FORM tbl_name;
3,插入记录(数据表中的 行)
INSERT [INTO] tb1_name [(col_name,…)] VALUES(val,…);
INSERT 关键字
INTO 可省略
tb1_name 数据表的名称
col_name 数据表中字段(列)的名称 可以省略,当省略时,后面插入记录数要和所有字段数相符,不省略时,要输入字段名称,后面插入记录也要相符。
VALUES(val,..) 关键字(记录) 记录数要和前面字段相符
NULL,字段值可以为空
NOT NULL, 字段值禁止为空
CREATE TABLE tb2(
username VARCHAR(20) NOT NULL;
age TINYINT UNSIGNE NULL;
4,主键
可以写为PRIMARY KEY,也可以写成KEY
每张数据表只能存在一个主键
主键保证记录的唯一性
主键自动为NOT NULL,也就是说必须要为主键赋值。但如果主键选择了AUTO_INCREMENT,那么不需要手动赋值。
auto_increment必须和主键primary key一起使用,但是主键primary key不一定要和auto_increment一块使用
5,约束
primary key
主键约束
一个表中只能有一个UNIQUE KEY
(1)唯一约束
(2)唯一约束可以保证记录的唯一性
(3)唯一约束的字段可以为空值(NULL)
(4)每张数据表可以存在多个唯一约束
6,外键约束
CREATE TABLE TB_MAIN_KEY(
id INT(1) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
location VARCHAR(50)
);
CREATE TABLE TB_OUT_KEY(
id INT(1) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_DEPT1 FOREIGN KEY(deptId) REFERENCES TB_MAIN_KEY(id)
);
7, 查看数据表结构
DESCRIBE 表名 或者 DESC 表名
8,表级约束与列级约束
- 对一个数据列建立的约束,称为列级约束
- 对多个数据列建立的约束,称为表级约束
- 列级约束既可以在列定义时声明,也可以在列定以后声明
- 表级约束只能在列定义后声明
2.主键、外键、非空、唯一、check,default都是约束条件。主键、外键、既可以作为表级约束,也可作为列级约束
而像非空、唯一等( not null, default )只有列级约束
9,一些对表的操作
SHOW COLUMNS FROM <表名>;//显示表内的各行
SELECT * FROM <表名>;//显示表内部的内容
ALTER TABLE <旧表名> RENAME <新表名>;//修改表的名字
ALTER TABLE <表名>MODIFY <字段名> <数据类型>;//修改字段的数据类型
ALTER TABLE <表名>MODIFY <字段名> <数据类型> FIRST;//修改字段为第一个
ALTER TABLE <表名> CHANGE<旧字段名> <新的字段名> <数据类型>;//修改字段的名字
ALTER TABLE <表名> ADD <添加的字段> <数据类型>;//添加字段
ALTER TABLE <表名>ADD <添加的字段> <数据类型> AFTER <字段名>;
ALTER TABLE <表名> DROP <要删除的字段>;//删除指定字段
ALTER TABLE <表名> ENGINE =<更改后的存储引擎>;
ALTER TABLE <表名> DROP FOREIGN KEY <外键约束名称>; //删除表的外键约束
UPDATE <表名> SET
10,常见运算符
mysql> INSERT INTO tmp1 VALUE(64);
mysql> SELECT num,num+10,num-3+5,num+5-3,num+36.5 FROM tmp1;
+——+——–+———+———+———-+
| num | num+10 | num-3+5 | num+5-3 | num+36.5 |
+——+——–+———+———+———-+
| 64 | 74 | 66 | 66 | 100.5 |
+——+——–+———+———+———-+
比较运算符
=,<=>,<>(!=),<=,>=,>
IS NULL
ISNULL() 判断一个值是否为NULL
IS NOT NUILL 判断一个只是否是非空
LEAST 再有两个或者多个参数时候,返回最小的那个
GREATEST 返回最大值
BETWEEN AND 判断是否在两个数之间:4BETWEEN 2 AND 6
IN 判断一个值是否是IN列表中的任意一个值
NOT IN
LIKE 通配符匹配,’%’:匹配任意数字的字符,甚至包括零字符,‘_’:只匹配一个字符
REGESP 正则表达式匹配,‘^’匹配以该字符后面字符开头的字符串,’$’:匹配以该字符后面的字符结尾的字符串,’.’:匹配任意一个单字符,[….]:匹配在方括号内的任何字符,‘*’:匹配任何数字量的字符
11-查询相关操作
11.1 除了查询结果加where条件外 还可以对其分组:
查询结果分组:
[group by{col_name|position} [ASC|DESC],…]
select * from users group by sex;
select * from users group by 1;(这里的一表示查询的第一个字段,这里查询所有,第一个字段就是id,也就是会按照字段进行分组)
ASC 升序默认 desc 降序
可以有多个分组,用“,”隔开
order by
11.2 对查询结果进行排序,默认是升序
order by{col_name}
select * from users order by id desc; //对一个字段排序
select * from users order by age,id desc; //两个字段同时排序
desc是降序
- 对查询结果进行排序:[ORDER BY [col_name | expr | position } [ASC|DESC],…]elect * from user order by id desc;
- 可以同时按多条字段进行排序,规则是先按前面的字段排,在基础上再按后面字段排。
- 如:SELECT * FROM users ORDER BY age,id DESC; 先按照age排序,如果age有重复的,重复的字段里按id排序