MySql初识

一.安装:

windows:点击我!

linux:yum install mysql-server

windows安装步骤:(5.7.18为例)下载完成后

1.下载完成后,双击安装程序运行。详细教程点击这里

2.安装成功后,找到文件安装路径下的BIN目录。默认一般是:C:\Program Files\MySQL\MySQL Server 5.7\bin 首先以管理员方式运行命令行,cd C:\Program Files\MySQL\MySQL Server 5.7\bin 切换到此目录。

3.执行 mysqld --initialize-insecure 指令初始化data目录 此时可以看到安装目录下多了data文件夹。

4.启动并连接mysql:  命令行键入 mysqld 回车便可以开启mysql。 然后可以重开一个cmd 输入mysql -u root -p 回车 (d是服务端开启,没有d是客户端对服务端的连接。-u root 表示root用户,也可更改其它已存在用户。),此时会提示输入密码。如果安装时候设置过密码则输入正确密码回车即可。

注:如果未添加环境变量,则需要先cd到mysql的bin目录下才可执行相应操作,所以为了方便我们最好应该添加环境变量,具体配置可以看这里;注意bin目录要改成自己对应的真实目录。

5.添加mysql服务。上一步解决了一些问题,但不够彻底,因为在执行【mysqd】启动MySQL服务器时,当前终端会被hang住,即开启服务端后需要等待客户端的接入,那么做一下设置即可解决此问题:

 # 制作MySQL的Windows服务,在终端执行此命令:  (必须以管理员方式运行终端)

"c:\mysql-5.7.16-winx64\bin\mysqld"  - - install  (引号内为自身实际路径
这样便可以为windows注册了mysql服务,以后再开启或者关闭服务时,只需要 net start mysql   |   net stop mysql 便可以。(不知道是不是个例,这里我的mysql服务变成了mysql57 所以对应的需要改成net start mysql57)
 
如果要移除服务:  "c:\mysql-5.7.16-winx64\bin\mysqld"  - - remove  

 

 

二.基本操作

连接:

默认:用户root


查看data所有文件: show databases;

切换到目录下:use 数据库名称;

查看目录下所有的表:show tables;

查看表里所有内容:select * from 表名;

查看表的对应列内容:select name,age,id from 表名;

查看账户信息表:mysql数据库user表
use mysql;
select user,host from user;

创建用户:
create user 'alex'@'192.168.1.1' identified by '123123';  (create user创建用户 'alex'用户名@'ip地址,%表示所有地址' by'密码')
create user 'alex'@'192.168.1.%' identified by '123123';
create user 'alex'@'%' identified by '123123';
授权:
权限 人

grant select,insert,update on db1.t1 to 'alex'@'%';   (select查看 insert 插入 updata 更新 on 表明 *.*表示所有文件 to '账户名以及ip')
grant all privileges on db1.t1 to 'alex'@'%';

revoke all privileges on db1.t1 from 'alex'@'%';  (解除权限)

DBA: 用户名密码


3. 学习SQL语句规则

操作文件夹
创建文件夹:create database db2;
创建文件夹以UTF8编码:create database db2 default charset utf8; *****
show databases;
删除文件夹:drop database db2;

操作文件
show tables;
创建表,id限制Int类型,name列限制10个字符 默认编码utf8:create table t1(id int,name char(10)) default charset=utf8;
engine=innodb,存储引擎,区别: create table t1(id int,name char(10))engine=innodb default charset=utf8;
id int类型作为主键,主键是唯一的。:create table t3(id int auto_increment primary key,,name char(10))engine=innodb default charset=utf8; *****

null,可以为空。

create table t1(
列名 类型 null,
列名 类型 not null,
列名 类型 not null auto_increment primary key,
id int,
name char(10)
)engine=innodb default charset=utf8;
# innodb 支持事务,原子性操作
# myisam myisam

auto_increment 表示:自增
primary key: 表示 约束(不能重复且不能为空); 加速查找
not null: 是否为空
数据类型:

数字:
tinyint(

tinyint[(m)] [unsigned] [zerofill]

            小整数,数据类型用于保存一些范围的整数数值范围:
            有符号:
                -128 ~ 127.
            无符号:
                0 ~ 255

            特别的: MySQL中无布尔值,使用tinyint(1)构造。


int(

 int[(m)][unsigned][zerofill]

            整数,数据类型用于保存一些范围的整数数值范围:
                有符号:
                    -2147483648 ~ 2147483647
                无符号:
                    0 ~ 4294967295

            特别的:整数类型中的m仅用于显示,对存储范围无限制。例如: int(5),当插入数据2时,select 时数据显示为: 00002


bigint(

 bigint[(m)][unsigned][zerofill]
            大整数,数据类型用于保存一些范围的整数数值范围:
                有符号:
                    -9223372036854775808 ~ 9223372036854775807
                无符号:
                    0  ~  18446744073709551615



FLOAT
0.00000100000123000123001230123
DOUBLE
0.00000000000000000000100000123000123001230123
0.00000100000123000000000000000
decimal
0.1(唯一精确的小数类型。)

字符串:
char(10) 速度快()  ,如存储字符不足10自动补全10
root
root
varchar(10) 节省空间
root
PS: 创建数据表定长列往前放

text

上传文件:
文件存硬盘
db存路径
时间类型
DATETIME

enum (

枚举类型,
            An ENUM column can have a maximum of 65,535 distinct elements. (The practical limit is less than 3000.)
            示例:
                CREATE TABLE shirts (
                    name VARCHAR(40),
                    size ENUM('x-small', 'small', 'medium', 'large', 'x-large')
                );
                INSERT INTO shirts (name, size) VALUES ('dress shirt','large'), ('t-shirt','medium'),('polo shirt','small');


set(

集合类型
            A SET column can have a maximum of 64 distinct members.
            示例:
                CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));
                INSERT INTO myset (col) VALUES ('a,d'), ('d,a'), ('a,d,a'), ('a,d,d'), ('d,a,d');




create table t1(
id int signed not null auto_increment primary key,
num decimal(10,5),
name char(10)
)engine=innodb default charset=utf8;

清空表:
delete from t1;  (计数不归零,不可以回滚)
truncate table t1;    (针对具有自动递增值的字段,做计数重置归零重新计算。可以回滚)
删除表:
drop table t1;

操作文件中内容
插入数据:
insert into t1(id,name) values(1,'alex');
删除:
delete from t1 where id<6  
修改:
所有age列的值更新为18:update t1 set age=18;
所有age为17的值改为18:update t1 set age=18 where age=17;
查看数据:
select * from t1;

外键:

create table userinfo(
uid bigint auto_increment primary key,
name varchar(32),
department_id int,
xx_id int,
constraint fk_user_depar foreign key (department_id) references color(id)
)engine=innodb default charset=utf8;

create table department(
id bigint auto_increment primary key,
title char(15)
)engine=innodb default charset=utf8;

今日内容参考博客:
http://www.cnblogs.com/wupeiqi/articles/5713315.html
作业:
http://images2015.cnblogs.com/blog/425762/201608/425762-20160803224643778-2071849037.png
http://www.cnblogs.com/wupeiqi/articles/5729934.html

转载于:https://www.cnblogs.com/mitsui/p/6945817.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值