博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql笔记(1)
阅读量:4607 次
发布时间:2019-06-09

本文共 7471 字,大约阅读时间需要 24 分钟。

数据库

MySQL

单机程序(自己DB)单机程序(公用DB)MySQL:是用于管理文件的一个软件    - 服务端软件        - socket服务端        - 本地文件操作        - 解析指令【SQL语句】    - 客户端软件(各种各样)        - socket客户端        - 发送指令        - 解析指令【SQL语句】    PS:        - DBMS数据库管理系统        - SQL语句技能:    - 安装 服务端和客户端    - 连接    - 学习SQL语句规则;指示服务端做任意操作

其他类似软件:

关系型数据库:sqllite,db2,oracle,access,sql server MySQL
非关系型数据库:MongoDB,redis

  1. MySQL安装

Windows:

可执行文件

压缩包        放置任意目录        初始化        > http://blog.csdn.net/mchdba/article/details/53618276    针对服务端    `mysqld --initialize-insecure`    查看data目录,.err文件中有初始化创建的账号密码信息              服务端:E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --initialize-insecure                   # 用户名 root 密码:空            启动服务端:                E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysqld                            客户端连接:                E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld\mysql -u root -p                                 发送指令:                    show databases;                    create database db1;
环境变量的配置:                E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin                mysqld                            windows服务:                E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --install                net start MySQL                                E:\wupeiqi\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysqld --remove                                net start MySQL                net stop MySQL
  1. 关于连接

文件夹【数据库】

  • 文件【表】
    • 数据行【行】
    • 数据行
    • 数据行
  • 连接:
    默认:用户root
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'@'192.168.1.%' identified by '123123';
    create user 'alex'@'%' identified by '123123';
  • 授权:
    权限 人
grant select,insert,update  on db1.t1 to 'alex'@'%';grant all privileges  on db1.t1 to 'alex'@'%';//百分号内填写对方的ip,这样就绑定了对方的用户名和登陆ip revoke all privileges on db1.t1 from 'alex'@'%';//移除权限DBA: 用户名密码

学习SQL语句规则

操作文件夹

create database db2;create database db2 default charset utf8; *****show databases;drop database db2;

操作文件

show tables;create table t1(id int,name char(10)) default charset=utf8;create table t1(id int,name char(10))engine=innodb default charset=utf8;create table t3(id int auto_increment,name char(10))engine=innodb default charset=utf8;  *****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

desc customers_info;查看某张表信息/结构

auto_increment 表示:自增

自增补充:修改自增起始值:`alter table t1             auto_increment=20;`自增步长-----——>会话级别:show session variables like "auto_inc%";//查看会话级别变量set session auto_increment_increment=2//设置会话步长为2set session auto_increment_offset=10;//设置会话起始值_-->全局级别:show global variables like "auto_inc%";//查看全局变量set global auto_increment_invrement=2;//设置全局步长set global auto_increment_offset=10;

primary key: 表示 约束(不能重复且不能为空); 加速查找

not null: 是否为空

增删改查:

标记查看表

mysql> desc department    -> ;+-------+-------------+------+-----+---------+----------------+| Field | Type        | Null | Key | Default | Extra          |+-------+-------------+------+-----+---------+----------------+| id    | int(11)     | NO   | PRI | NULL    | auto_increment || dname | varchar(32) | YES  |     | NULL    |                |+-------+-------------+------+-----+---------+----------------+2 rows in set (0.00 sec)mysql> show create table stuff \G*************************** 1. row ***************************       Table: stuffCreate Table: CREATE TABLE `stuff` (  `sid` int(11) NOT NULL AUTO_INCREMENT,  `sname` varchar(32) DEFAULT NULL,  `did` int(11) DEFAULT NULL,  PRIMARY KEY (`sid`),  KEY `fk_stuff_did` (`did`),  CONSTRAINT `fk_stuff_did` FOREIGN KEY (`did`) REFERENCES `department` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf81 row in set (0.00 sec)

数据类型:

  • 数字:
    整数
(范围不同):int tinyint bigint(unsigned/signed)

浮点数

float0.00000100000123000123001230123DOUBLE0.000000000000000000001000001230001230012301230.00000100000123000000000000000decimal(精确小数,可以指定精度)0.1
  • 字符串:
    字符串类型:char varchar(可变长)
    最高只能有255个字符
    如果高于255,就用text类型
char(10)      速度快()varchar(10)   节省空间PS: 创建数据表定长列往前放text类型上传文件: 文件存硬盘db存路径
  • 时间类型
    DATETIME
  • 枚举类型
    enum
  • 集合类型
    set
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;

用法:DROP TABLE IF EXISTS "dt_class";

如果表中存在dt_class,就删除这个表,一般用在表头可以确保创建表的策略。

  • 操作文件中内容

插入数据:

insert into t1(id,name) values(1,'alex');
删除:
delete from t1 where id<6
修改:

update t1 set age=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       department('id'),    constraint fk_xx_ff foreign key (xx_id) references XX(id))engine=innodb default charset=utf8;//注意,有些版本的mysql并不支持这种,括号内在加 引号的方式。推荐去掉引号和末尾的逗号。create table department(id bigint auto_increment primary key,title char(15))engine=innodb default charset=utf8;

为已经添加好的数据表添加外键:

语法:
alter table 表名 add constraint FK_ID foreign key(你的外键字段名) REFERENCES 外表表名(对应的表的主键字段名);

作业:

http://images2015.cnblogs.com/blog/425762/201608/425762-20160803224643778-2071849037.png
http://www.cnblogs.com/wupeiqi/articles/5729934.html


作业:

mysql> create database db_school;Query OK, 1 row affected (0.00 sec) mysql> use db_school;Database changed  mysql> create table t_teacher(id tinyint unsigned not null auto_increment,name varchar(60) not null,primary key(id))engine=innodb    -> ;Query OK, 0 rows affected (0.02 sec) mysql> insert into t_teacher(name)value('scott'),('jerry'),('peter'),('jack');Query OK, 4 rows affected (0.01 sec)Records: 4  Duplicates: 0  Warnings: 0 mysql> select * from t_teacher    -> ;+----+-------+| id | name  |+----+-------+|  1 | scott ||  2 | jerry ||  3 | peter ||  4 | jack  |+----+-------+4 rows in set (0.00 sec)  mysql>  create table t_course(cid tinyint unsigned not null auto_increment,cname varchar(30) not null,primary key(cid))engine=innodb    -> ;Query OK, 0 rows affected (0.02 sec)  mysql> alter table t_course add column tid tinyint not null;Query OK, 0 rows affected (0.04 sec) mysql> insert into t_course(cname,tid)value('oppo','3'),('vivo','2'),('sansang','3');Query OK, 3 rows affected (0.01 sec)Records: 3  Duplicates: 0  Warnings: 0 mysql> select * from t_course;+-----+---------+-----+| cid | cname   | tid |+-----+---------+-----+|   1 | oppo    |   3 ||   2 | vivo    |   2 ||   3 | sansang |   3 |+-----+---------+-----+3 rows in set (0.00 sec) mysql> create table t_class(    -> id tinyint unsigned not null auto_increment primary key,    -> class char(12) not null)engine=innodb charset=utf8;Query OK, 0 rows affected (0.01 sec) mysql> insert into t_class(class)values('三年二班'),('三年三班'),('三年一班');Query OK, 3 rows affected (0.01 sec)Records: 3  Duplicates: 0  Warnings: 0 mysql> select * from t_class;+----+--------------+| id | class        |+----+--------------+|  1 | 三年二班     ||  2 | 三年三班     ||  3 | 三年一班     |+----+--------------+3 rows in set (0.00 sec)

转载于:https://www.cnblogs.com/scott-lv/p/7587060.html

你可能感兴趣的文章
android关于实现EditText中加多行下划线的的一种方法
查看>>
python列表求和的几种等效电路
查看>>
Luogu P3393 逃离僵尸岛
查看>>
Flatten Binary Tree to Linked List
查看>>
Edit Distance
查看>>
软件工程第一次作业补充
查看>>
N76E003---输入捕获
查看>>
poj 1094 Sorting It All Out(拓扑排序)
查看>>
acdream B - 郭式树 (水题 卡cin,cout, 卡LL)
查看>>
BMP图像格式
查看>>
python的匿名函数lambda解释及用法
查看>>
c#遍历Dictionary使用KeyValuePair
查看>>
defineProperties属性的运用==数据绑定
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>
快速入门
查看>>
Mybatis通过ID查询 && 通过name模糊查询
查看>>
SQL查询日志 查看数据库历史查询记录的方法
查看>>