MySQL笔记-1

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,约束

  1. primary key
    主键约束
    一个表中只能有一个

  2. 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排序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值