Ubuntu中MySQL学习笔记00
来源:互联网 发布:vb安装包 编辑:程序博客网 时间:2024/06/18 15:26
//本系列文是自己为记录学习历程所写
测试是否安装成功
如果返回的结果中 看到有 LISTEN 状态 应该就是安装成功了 //网上传的什么 socket栏表示没看见 应该是复制粘贴的人漏了
我一开始练习都是使用 root 账户登录了
方法如下:
为root设置完密码以后登录的时候除了用上面的方法等待 提示之后 输入之外
还可以利用以下代码一步到位
注意 表等操作 要指定数据库 [下文中 字段等同于属性]
例子:
//则mb2,mb3为 myTable2 的外键 且 mb23为这两个外键的别名。
触发器
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句;
若多语句时
//一般情况下 MySQL 默认是以 ; 作为结束执行语句 在创建触发器过程中要用到 ; 为了解决这个问题
可以用 DELIMITER 语句如 DELIMITER && 将结束符变成&& 当触发器创建完成后 可以再用命令 DELIMITER ;
来恢复结束符号为 ;
//参考资料: MySQL入门很简单 黄缙华等编著 清华大学出版社 北京
Ubuntu16.04 中 安装 MySQL:
~# sudo apt-get install mysql-server~# sudo apt-get install mysql-client //网上看了太多帖子 第二行这里的 install 都是 ns反了 复制粘贴也太...~# sudo apt-get install libmysqlclient-dev
MySQL版本: 5.7.17-0ubuntu0.16.04.1测试是否安装成功
~# sudo netstat -tap | grep mysql
如果返回的结果中 看到有 LISTEN 状态 应该就是安装成功了 //网上传的什么 socket栏表示没看见 应该是复制粘贴的人漏了
我一开始练习都是使用 root 账户登录了
方法如下:
~# mysql -u root -p //其中 -u 应该是 user 用户名参数 -p 表示帐号用户密码有些忘记当初是在哪一步骤为root 账户设置密码了 印象很淡 可能是初始自动提醒的。
为root设置完密码以后登录的时候除了用上面的方法等待 提示之后 输入之外
还可以利用以下代码一步到位
mysql -u root -pPASSWORD
注意PASSWORD 就是该账户 (这里为 root )的密码 应该紧贴再 -p 之后 中间无空格
进入 mysql 程序之后:
有以下简单命令: [xxxxName 一般指自己想指定的对象名称 ]
SHOW DATABASES; //显示所有数据库CREATE DATABASE databaseName; //创建一个以databaseName为名的数据库DROP DATABASE databaseName; //删除一个指定名数据库SHOW ENGINES; //显示数据库引擎相关信息SHOW TABLES; //显示数据库所含有的表SHOW CREATE TABLE tableName; //显示表名为 tableName 的表的相关信息
注意 表等操作 要指定数据库 [下文中 字段等同于属性]
USE databaseName;
DESCRIBE tableName; //查看指定表的结构 可以简化为DESC tableName; //效果相同CREATE TABLE tableName (字段名 数据类型[完整性约束条件],字段名 数据类型[完整性约束条件], ...); //建立表的操作DROP TABLE tableName; //删除无其他关联的 简单表的 操作ALTER TABLE 旧表名 RENAME 新表名 //表改名ALTER TABLE 表名 CHANGE 旧属性名 新属性名 新数据类型 //修改属性的名或数据类型ALTER TABLE 表名 MODIFY 属性名1 新数据类型 [FIRST | AFTER 属性名2] //修改字段的数据类型或排列位置
ALTER TABLE 表名 ADD 属性名1 数据类型 [完整性约束] [FIRST | AFTER 属性名2]; //增加字段ALTER TABLE 表名 DROP 属性名; //删除字段ALTER TABLE 表名 DROP FOREIGN KEY 外键别名; //删除表的外键约束ALTER TABLE 表名 ENGINE = 存储引擎名; //更改存储引擎INSERT INTO 表名 VALUES (值1,值2,值...),(值m,值m+1,...),(值k,值k+1,...); //插入单位 INSERT语句中不指定具体的字段名INSERT INTO 表名 VALUES (属性1,属性2,...) VALUES (值1,值2,...); //插入单位 指定具体字段名 较为灵活INSERT INTO 表名1 (属性列表1)SELECT 属性列表2 FROM 表名2 WHERE 条件表达式; //将表2中的查询结果插入表1中UPDATE 表名 SET 属性名1 = 取值1,属性名2 = 取值2,属性名n = 取值n WHERE 条件表达式; //UPDATE 修改DELETE FROM 表名 [ WHERE 条件表达式 ]; //若无 WHERE 删除表中所有数据若要设立单个字段为 主键 (primary key) : 字段名 数据类型 PRIMARY KEY若是要设置多个字段为主键 : 在设置完字段名之后在 , 后面加一句 PRIMARY KEY(字段1,字段2,字段3,...) 即可4对于完整性约束条件 类似还有 UNIQUE : 表的唯一性约束 NOT NULL : 非空约束AUTO_INCREMENT : 表的字段自增
外键的作用: 建立该表与其父表的关联关系
若有字段 mbA 是表A的属性,且依赖于表 B 的主键。则称表 B 为父表 表A为子表 mbA 是表A 的外键。
//要特别留意 子表的外键必须为 父表的主键,类型必须一致, 外键可以为空值
//比如 ID 是 student表的primary key ,关于学生这个对象,有一些相关的资料 比如 姓名 健康状况等 存储在 表2,那么当删除某一个指定ID的学生时
//表2中的关于这个ID的学生的资料也应该同步删除
创建表时可以加入这样一个声明:
CONSTRAINT 外键别名 FOREIGN KEY(字段名1,字段名2,...) REFERENCES 表名(字段名1,字段名2,...)
例子:
CREATE TABLE myTable1 ( mb2 INT, mb3 INT, PRIMARY KEY( mb2 , mb3) );CREATE TABLE myTable2 (mb1 INT PRIMARY KEY, mb2 INT ,mb3 INT,CONSTRAINT mb23 FOREIGN KEY( mb2,mb3 )REFERENCES myTable1( mb2,mb3 ));
//则mb2,mb3为 myTable2 的外键 且 mb23为这两个外键的别名。
触发器
CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROW 执行语句;
若多语句时
DELIMITER &&CREATE TRIGGER 触发器名 BEFORE | AFTER 触发事件 ON 表名 FOR EACH ROWBEGIN执行语句;执行语句;...END&&DELIMITER ;
//一般情况下 MySQL 默认是以 ; 作为结束执行语句 在创建触发器过程中要用到 ; 为了解决这个问题
可以用 DELIMITER 语句如 DELIMITER && 将结束符变成&& 当触发器创建完成后 可以再用命令 DELIMITER ;
来恢复结束符号为 ;
查看触发器 SHOW TRIGGERS;
删除触发器 DROP TRIGGER 触发器名;
基本查询语句
SELECT 属性列表 FROM 表名和视图列表[WHERE 条件表达式1][GROUP BY 属性名1 [ HAVING 条件表达式2] ][ORDER BY 属性名2 [ASC | DESC] ];SELECT * FROM 表名; //查询表的所有字段
/-------------------------------------
查询条件各种符号:
比较: = < <= > >= != !> !< <>
指定范围 BETWEEN AND NOT BETWEEN AND
指定集合 IN NOT IN
匹配字符 LIKE NOT LIKE
是否为空值 IS NULL IS NOT NULL
多个查询条件 AND OR
....................................../
SELECT DISTINCT 属性名; //消除重复记录SELECT * FROM newTableName WHERE语句 ; //将表名以 newTableName 展示出来(实际不改变) 方便阅读属性名 REGEXP '匹配方式'; //使用 REGEXP 关键字来匹配查询正则表达式
IF ( expr ,v1, v2 ) //函数 若expr成立返回v1 否则返回v2SELECT 属性 , IF(属性相关的expr, v1, v2 ); //节选 注意属性之后要有逗号CASE WHEN expr1 THEN v1 [ WHEN expr2 THEN v2 ...] [ELSE vn] END;
//加密函数 留坑FORMAT (x ,n); //格式化函数 将x保留到小数点后n位BENCHMARK (count,expr); //函数将表达式 expr 重复执行count此CONVERT (s USING cs); //将字符串s的字符集变成 cs
CREATE PROCEDURE sp_name ( [proc_parameter [...] ] ) [characteristic ...] routine_body;//创建存储过程//sp_name 存储过程名称//proc_parameter 存储过程参数列表 [ IN | OUT | INOUT ] param_name type//characteristic 存储过程特性LANGUAGE SQL //routine_body 部分由 SQL语句组成{ CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }//指明子程序使用SQL语句的限制SQL SECURITY { DEFINER | INVOKER }//指明谁由权限来执行 前者仅定义设计者自己可执行 后者则调用者可 默认前者//routine_body 部分由 SQL语句组成 SQL 代码内容 可以用 BEGIN..END 来标志SQL 代码的开始和结束例子:DELIMITER &&CREATE PROCEDURE numFromEmployee ( IN empID INT , OUT countNum INT)//proc_parameter 部分READS SQL DATA//characteristic 部分BEGINSELECT COUNT(*) INTO countNum FROM tableEmployeeWHERE employeeID=empID;END&&ELIMITER ;
0 0
- Ubuntu中MySQL学习笔记00
- Ubuntu中MySQL学习笔记01
- Linux/Ubuntu学习笔记(七)--MySQL安装
- Linux/Ubuntu学习笔记(七)--MySQL安装
- Ubuntu中MySQL安装与使用笔记
- Ubuntu中MySQL安装与使用笔记
- Linux学习笔记之——ubuntu中mysql安装与卸载
- Linux学习笔记之——ubuntu中mysql修改编码utf8
- Linux学习笔记之——ubuntu中mysql允许远程连接
- mysql在ubuntu环境下配置主从数据学习笔记
- LINUX UBUNTU系统学习笔记二:mysql数据库的安装
- Ubuntu系统学习笔记-6.Mysql远程连接
- ubuntu playframework 使用 ebean 连接 MySQL 学习笔记
- mysql学习笔记(编辑中)
- Ubuntu中安装Nginx+php+mysql+memcache+eaccelerator笔记
- 【MySQL】MySQL学习笔记
- 【mysql】mysql学习笔记
- Ubuntu中MySQL操作
- HDU 5036 Explosion (bitset + DP)
- Hash散列表知多少
- Survey of optimisation software
- HDU 5313 Bipartite Graph(bitset + DP)
- Java面试题全集(上)
- Ubuntu中MySQL学习笔记00
- HDU 5412 CRB and Queries(整体二分 | CDQ分治)
- HDU 5732 Subway(树同构)
- 简单的二分查找条件
- c/c++ 练习笔记
- 第17章 控件模版(4)——事件触发器
- 226. Invert Binary Tree [LeetCode]
- poj 1111 dfs求面积问题
- spring data elasticsearch在集群新建了索引出现unsigned