MySQL基础(一位小白)
MySQL
mysql -u root -p --default-character-set=utf8mb4
需要明白SQL查询语句的写法:
1、SELECT ....
2、FROM ....
3、JOIN ... ON ....
4、WHERE ...
5、GROUP BY ...
6、HAVING ...
7、ORDER BY ...
执行顺序与书写顺序不同:
2、FROM
3、JOIN ... ON ...
4、WHERE ...
5、GROUP BY ...
6、HAVING ...
1、SELECT ...
7、ORDER BY ...
一、数据库基本操作
1.1、用户管理
*1.1.1、
*登录
mysql -u user -p;
*1.1.2、
*查看当前用户
select user;-- from dual可省略
select user from dual;
*1.1.3、
*创建新用户
create user 用户名@localhost identified by'密码';
*1.1.4、
*为用户授权
grant all on *.* to 用户名@localhost-- 将新数据库中所有权限授予给新用户
grant all on 数据库名.* to 用户名@localhost ;
*1.1.5、
*删除用户
drop user 用户名@localhost
1.2、数据库管理
*1.2.1、
*查看当前用户可操作的所有数据库
show databases;
*1.2.2、
*创建新数据库
create database 数据库名;-- []可省略
create database 数据库名 [ default character set utf8mb4 ];
*1.2.3、
*选择数据库
use 数据库名;-- 查看当前数据库(即被选中的数据库)select database();尚未选择任何数据库会返回NULL
*1.2.4、
*导出数据库
mysqldump -u ddy -p ddy market>d:/market.sqlmysqldump -u 用户名 -p 数据库名 > 路径名称
*1.2.5、
*导入数据库
mysql -u ddy -p market<d:/market.sqlmysql -u 用户名 -p 数据库名 < 路径名称
15和16均在命令提示符下执行
*1.2.6、
*导入source
mysql> source D:\scripts\region_dept_emp.sql
17必须在mysql里面先选中数据库后再执行source
*1.2.7、
*删除数据库
drop database 数据库名;
1.3、表管理
*1.3.1、
*查看表
show tables;
*1.3.2、
*创建表
create table 表名 (列名 类型(宽度) , ... );
*1.3.3、
*删除表
drop table 表名;
*1.3.4、
*截断表
truncate table 表名;
*1.3.5、
*添加列
alter table 表名 add column ( 列名 类型(宽度) , ... )
*1.3.6、
*删除列
ALTER TABLE 表名 DROP COLUMN 列名
*1.3.7、
*修改列名
ALTER TABLE 表名 CHANGE COLUMN 原列名 新列名 类型(宽度);
1.4、数据管理
*1.4.1、
*添加数据
添加数据时按顺序依次添加
insert into 表名 (列名) values (值);
*1.4.2、
*删除数据
先删除字表记录,再删除主表记录
DELETE FROM kfm WHERE id = 1 ;
*1.4.3、
*更新数据
UPDATE kfm SET name = 'tom' , birthdate='2001-05-06' WHERE id = 1 ;
1.5、数据查询
1.5.1、查询
SELECT id , name , birthdate FROM kfm where 条件;
1.5.2、排序
SELECT id , name , birthdate FROM kfm ORDER BY name ASC;
1.5.3、分页查询
-- limit 0 ,5 0是从第几条开始查询,5是查询几条数据 -1为最后一行记录
SELECT * FROM kfm LIMIT 0 , 5;
1.5.4、提出查询中重复行
使用 DISTINCT 可以剔除查询结果中的 "重复行"
mysql> SELECT DISTINCT deptno FROM emp ;
二、约束和高级查询
1、约束
通过 show create table 查看约束
1.1、主键约束
表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行,这样的一列或多列称为表的主键,也称作主键约束。
主键约束最显著的特征是主键列中的值是不允许重复的 不为空,通过主键约束可强制表的实体唯一性。
alter table 表名 add 可写(constraint 约束名) primary key(列名);ALTER TABLE 表名 MODIFY 列名 INT PRIMARY KEY;创建表时可直接在类型后加primary key
删除主键约束(不使用名称))
mysql> ALTER TABLE 表名DROP PRIMARY KEY ;
自增长列
自增长列必须是主键列
-- 设置自增长列
auto_increment
1.2、唯一约束
对于非主键列的值需要具有唯一性是使用唯一约束
不允许有重复的,可以有一个为空
alter table 表名 add constraint unique(列名);
1.3、默认约束
为列中的值设置默认值,使用insert添加记录时,没有指定值就会使用默认值,指定值则默认值无效
alter table 表名 change column 旧列名 新列名 数据类型 default 数值;
1.4、外键约束
关系:一对一、一对多、多对多
alter table 子表名 add 可写(constraint 约束名) foreign key 子表名(子表列名)references 主表名(主键列名);
尝试删除外键约束
ALTER TABLE 表名 DROP CONSTRAINT 约束名 ;
1.5、检查约束
用于检验列中值是否符合要求
alter table 表名 add constraint 列名 check(检查条件);
2、高级查询
2.1、基本查询
2.1.1、查询所有信息
select * from 表名;
2.1.2、查询指定列
select 列1,列2,.... from 表名;
2.1.3、去掉列中重复值
select distinct 列名 from 表名;
2.1.4、使用运算
select 列1+列2 from 表名;
2.1.5、使用列别名
select 列名 as 显示名 from 表名;
2.2、条件查询
2.2.1、比较运算符
select * from 表名 where 列名>(< | >= | <= | <>和!=一样)条件;
2.2.2、逻辑运算符
select * from 表名 where 条件 and(or | not) 条件;
2.2.3、between…and…
select * from 表名 betweeen 条件 and 条件;
2.2.4、in 和 exists
select * FROM 表名 where job IN ('项目经理', '项目组长' );
in语句是把外表和内表作hash 连接,而exists语句是对外表作loop循环,每次loop循环再对内表进行查询
如果查询的两个表大小相当,那么用in和exists差别不大。
如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in。
not in 和not exists:如果查询语句使用了not in,那么内外表都进行全表扫描,没有用到索引;而not extsts的子查询依然能用到表上的索引。所以无论那个表大,用not exists都比not in要快
2.2.5、模糊查询like
通配符
%
和_
实现,%
表示任个任意字符,_
表示任意一个字符。
-- 查询姓宋的
select * FROM 表名 where 列名 like'宋%';
-- 查询以x结尾的三个字
select * FROM 表名 where 列名 like'_ _x';-- 显示 ename 中第二个字母是下划线的员工信息
SELECT empno , ename FROM emp WHERE ename LIKE '_\_%' ;-- 使用 escape 来显式定义转义字符
SELECT empno , ename FROM emp WHERE ename LIKE '_$_%' ESCAPE '$' ;-- 成对的单引号总是表示字符串边界,如果在字符串中需要出现单个单引号,只需要将单引号写两次即可
mysql> SELECT empno , ename FROM emp WHERE ename LIKE '_''_%' ESCAPE '''' ;
2.2.6、null查询
NULL在数据库中表示没有数据,应使用
is
来判断列中是否存在NULL
select * FROM 表名 where 列名 is null;
2.3、排序
order by 升序(ASC) | 降序(DESC)默认是升序
select * FROM 表名 where .... order by 列名 asc;
2.4、分组查询
按照指定的列,将列中相同的值分为一组,一组用一条记录来表示。分组后,可以对每组中的数据进行聚合查询
SELECT deptno 部门编号, COUNT(*) 人数 FROM emp group by deptno;
2.5、筛选
Having
子句是对分组后,每组中的数据进行筛选。相对于where子句是在分组前进行的筛选,having子句是在分组后进行的筛选
SELECT deptno 部门编号, COUNT(*) 人数 FROM emp GROUP BY deptno having 人数 > 3;
2.6、连接查询
2.6.1、内连接
我们将 emp.deptno = dept.deptno 条件称作 连接条件
我们将 返回 满足连接条件的查询 称作 内连接( inner join )
非等值连接
-- 内连接之非等值连接
mysql> select empno , ename , sal from emp ;
等值连接
-- 内连接之等值连接
mysql> -- 查询 emp 表中每个员工的工号、姓名、部门号、部门名称
mysql> select * from emp ;
两个表连接
FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号
三个表连接
FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号
四个表连接
FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号
2.6.2、外连接
若查询结果中除满足连接条件的数据外,还包含不满足连接条件的数据,则 将这种查询称作外连接
-- 右外连接 左边没有值得补充为null
mysql> SELECT * FROM dept d RIGHT OUTER JOIN emp e ON e.deptno = d.deptno ;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1SdfO5Bu-1629766404292)(https://i.loli.net/2021/08/12/Xhv5FnekjWf2sbY.png)]
以下语句被认为是右连接的非标准写法 ( MySQL 8.0.25 不支持 )
SELECT * FROM t_major m , t_class c WHERE m.id(+) = c.major_id ;
-- 左外连接 右边没有值得补充为null
mysql> SELECT * FROM dept d LEFT OUTER JOIN emp e ON e.deptno = d.deptno ;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3m4WL2pq-1629766404294)(https://i.loli.net/2021/08/13/UFAQE4GhjZbgleD.png)]
以下语句被认为是左连接的非标准写法 ( MySQL 8.0.25 不支持 )
SELECT * FROM t_major m , t_class c WHERE m.id = c.major_id(+) ;
-- 全外连接( MySQL不支持 )
SELECT * FROM t_class c FULL OUTER JOIN t_major m ON c.major_id = m.id ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FULL OUTER JOIN t_major m ON c.major_id = m.id' at line 1
2.6.3、自连接查询
from emp e1 join emp e2 on e1.mgr=e2.empno
2.7、子查询
-- 单行子查询: 返回单行单列
-- 多列子查询: 返回单行多列 (使用了成对比较))
SELECT * FROM emp WHERE ( deptno , job , manager ) = ( SELECT deptno , job , manager FROM emp WHERE upper(ename) = 'SMITH' ) ;
-- 多行子查询: 返回多行单列
-- 相关子查询: 子查询使用了外部SQL的某些表或列 (但是外部SQL不可使用子查询中的表和列)
-- 嵌套子查询:在子查询内部可以继续嵌套子查询
2.8、case
-- 用1来表示公 2表示母
mysql> SELECT id , name , CASE-> WHEN gender = 1 THEN '公'-> WHEN gender = 2 THEN '母'-> ELSE '未知'-> END AS gender-> FROM t_dogs ;
+------+------+--------+
| id | name | gender |
+------+------+--------+
| 1 | 旺财 | 公 |
| 2 | 来福 | 母 |
| 3 | 小黑 | 未知 |
| 3 | 大黄 | 未知 |
+------+------+--------+
4 rows in set (0.00 sec)
3、函数
3.1、聚合函数
聚合函数有
sum
、max
、min
、avg
、count
共五个使用聚合函数必须的分组
3.2、数学函数
round函数
round(x) x四舍五入取整、
round(x,[y]) y指保留几位数
floor函数
floor(x) x向下取整 如:floor(15.87)取整后是15
ceiling函数
ceiling(x) x向上取整 如:ceiling(15.34)取整后是16
abs函数
abs(-12) 12 取绝对值
mod函数
mod(x,y) 取x除以y的余数
power函数
power(x,y) 取x的y次幂
sqrt函数
sqrt(x) 取x开根号
3.3、字符串函数
length函数
获取字符串长度
upper/lower函数
upper函数是将所有字符全部改成大写
lower函数是将所有字符全部改成小写
concat函数
concat(x,y)将x和y两个字符串连接起来
instr函数
instr(‘java web’ ‘web’) 6 检索子字符串在父字符串中的索引
ltrim函数
ltrim(’ java’) 去掉左边空格
rtrim函数
rtrim('java ') 去掉右边空格
trim函数
trim(’ java ') 去掉两端的空格
replace函数
replace(‘hello java’,‘java’,‘123’) hello 123 替换文本
substr函数
substr(‘12345’,2) 2345 第一个参数是被截取的字段,第二个参数是从第几位开始截取
3.4、日期函数
3.4.1、日期格式符
格式 | 描述 |
---|---|
%a | 缩写星期名 |
%b | 缩写月名 |
%c | 月,数值 |
%D | 带有英文前缀的月中的天 |
%d | 月的天,数值(00-31) |
%e | 月的天,数值(0-31) |
%f | 微秒 |
%H | 小时(00-23) |
%h | 小时(01-12) |
%I | 小时(01-12) |
%i | 分钟,数值(00-59) |
%j | 年的天(001-366) |
%k | 小时(0-23) |
%l | 小时(1-12) |
%M | 月名 |
%m | 月,数值(00-12) |
%p | AM 或 PM |
%r | 时间,12-小时(hh:mm:ss AM 或 PM) |
%S | 秒(00-59) |
%s | 秒(00-59) |
%T | 时间, 24-小时(hh:mm:ss) |
%U | 周(00-53)星期日是一周的第一天 |
%u | 周(00-53)星期一是一周的第一天 |
%V | 周(01-53)星期日是一周的第一天,与 %X 使用 |
%v | 周(01-53)星期一是一周的第一天,与 %x 使用 |
%W | 星期名 |
%w | 周的天(0=星期日, 6=星期六) |
%X | 年,其中的星期日是周的第一天,4 位,与 %V 使用 |
%x | 年,其中的星期一是周的第一天,4 位,与 %v 使用 |
%Y | 年,4 位 |
%y | 年,2 位 |
3.4.2、查询今天
/*NOW() 函数返回当前的日期和时间。TO_DAYS()函数返回日期和年份0(日期"0000-00-00")之间的天数。
*/
SELECT * FROM cpidata WHERE TO_DAYS( 时间字段名 ) = TO_DAYS(NOW());
3.4.3、查询昨天
/*NOW() 函数返回当前的日期和时间。TO_DAYS()函数返回日期和年份0(日期"0000-00-00")之间的天数。
*/
SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) - TO_DAYS( 时间字段名) = 1
3.4.4、查询本周
/*YEARWEEK()返回年份和星期DATE_FORMAT(被格式化的日期,格式符)日期格式化函数
*/
SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(日期字段名,'%Y-%m-%d')) = YEARWEEK(NOW());
3.4.5、查询上周
/*YEARWEEK()返回年份和星期DATE_FORMAT(被格式化的日期,格式符)日期格式化函数
*/
SELECT * FROM 表名 WHERE YEARWEEK(DATE_FORMAT(日期字段名,'%Y-%m-%d')) = YEARWEEK(NOW())-1;
3.4.6、查询近7天
/*DATE_SUB() 函数从日期减去指定的时间间隔DATE_SUB(合法的日期表达式,INTERVAL 希望添加的时间间隔 时间类型)CURDATE() 函数返回当前的日期。
*/
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)
3.4.7、查询近30天
/*DATE_SUB() 函数从日期减去指定的时间间隔DATE_SUB(合法的日期表达式,INTERVAL 希望添加的时间间隔 时间类型)CURDATE() 函数返回当前的日期。
*/
SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)
3.4.8、查询本月
/*DATE_FORMAT(被格式化的日期,格式符)日期格式化函数
*/
SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' );
3.4.9、查询上一月
/*PERIOD_DIFF(第一个日期,第二个日期)函数返回两日期之间的差异。结果以月份计算
*/
SELECT * FROM 表名 WHERE PERIOD_DIFF( DATE_FORMAT( NOW( ) , '%Y%m' ) , DATE_FORMAT( 时间字段名, '%Y%m' ) ) =1
3.4.10、查询本季度
/*QUARTER(日期)返回日期的季度:
*/
SELECT * FROM 表名 WHERE QUARTER(日期字段名)=QUARTER(NOW());
3.4.11、查询上季度
/*QUARTER(日期)返回日期的季度:DATE_SUB() 函数从日期减去指定的时间间隔DATE_SUB(合法的日期表达式,INTERVAL 希望添加的时间间隔 时间类型)
*/
SELECT * FROM 表名 WHERE QUARTER(日期字段名)=QUARTER(DATE_SUB(NOW(),INTERVAL 1 QUARTER));
3.4.12、查询本年度
/*year(日期字段名)返回日期中的年份
*/
SELECT * FROM 表名 WHERE YEAR(日期字段名)=YEAR(NOW());
3.4.13、查询上年度
/*year(日期字段名)返回日期中的年份DATE_SUB() 函数从日期减去指定的时间间隔DATE_SUB(合法的日期表达式,INTERVAL 希望添加的时间间隔 时间类型)
*/
SELECT * FROM 表名 WHERE YEAR(日期字段名)=YEAR(DATE_SUB(NOW(),INTERVAL 1 YEAR));
3.4.14、日期截取函数
函数 | 作用 | 函数 | 作用 |
---|---|---|---|
dayofweek(date) | date是星期几 | dayofmonth(date) | date是该月中第几日 |
dayofyear(date) | date是一年中第几日 | year(date) | 返回date的年份 |
month(date) | 返回date的月份 | day(date) | 返回date的日期 |
week(date) | 返回date是一年中第几周 | hour(time) | 返回time的小时数 |
minute(time) | 返回time中的分钟数 | second(time) | 返回time的秒数 |
current_timestamp() | 获取当前时间 | current_date() | 获取当前日期 |
current_time() | 获取当前时间 | now() | 获取当前日期+时间 |
datediff(date1,date2) | 返回两个日期之间的天数 |
三、事务
MySQL 8 默认的引擎是 InnoDB ,该引擎是支持事务的;MySQL 5.5 之前默认的引擎是 MyISAM ,它是不支持事务的
构成单一逻辑工作单元的操作集合称作事务( transaction ), 它是作为不可分割的逻辑单元执行的一组SQL语句。
退出mysql提示符就意味着结束事务、终止会话、断开连接;重新登录mysql需要重新设置事务提交方式
一个事务开时,在没提交的前提下又开始一个新事务,之前的事务会自动提交
-- 查询事务提交方式(若返回1则表示自动提交)
SELECT @@autocommit ;
所有的 DDL 语句都会导致事务自动提交。 CREATE TABLE / ALTER TABLE / DROP TABLE / TRUNCATE TABLE
3.1、特性
Atomicity 原子性 : 事务中的所有操作要么都发生、要么都不发生
Consistency 一致性 : 事务将数据库从一种一致状态转变为下一种一致状态
Isolation 隔离性 : 一个事务的执行,不应该受到其它事务的干扰
Durability 持久性 : 事务一旦提交,其结果就是持久的
3.2、控制语句
通过begin和start transaction开启事务,事务提交方式默认为手动提交,会话提交方式还是自动的(没改的前提下)
-- 开始事务 BEGIN
begin;
start transaction ;
-- 使用commit意味着上一个事务以完结,开启了一个新的事务
commit;
-- 提交事务 COMMIT
commit;
-- 回滚事务: 这里是为了撤销删除的数据
rollback ;
rollback to
3.3、事务提交模式
-- 开启事务自动提交
set autocommit = 1 ;
-- 关闭事务自动提交
set autocommit = 0 ;
3.4、隔离级别
连接建立并创建会话时就已经隐式开启的事务的隔离级别是 可重复读读
因此需要显式地终结这个事务,以便于让新事务使用我们设置后的 隔离级别
- READ UNCOMMITTED 读未提交
- READ COMMITTED 读已提交
- REPEATABLE READ 可重复读
- SERIALIZABLE 串行化
-- 使用 SET TRANSACTION 来设置事务隔离级别
SET session TRANSACTION ISOLATION LEVEL read committed ;
set @@session.transaction_idolation='red-uncommitted';
3.5、保存点
SAVEPOINT identifierName 设置保存点
RELEASE SAVEPOINT identifierName 释放保存点
ROLLBACK TO identifierName 回滚到保存点
3.6、并发产生的问题
Dirty Read 脏读:个事务读取到了另外一个事务尚未提交的数据
(比如隔离级别为read uncommitted将事务隔离级别调高到read committed即可解决)
Nonrepeatable Read 不可重复读:同一个事务中多次査询到的数据竞然是不同的
因为读取到了另一个事务中没有提交的数据(比如隔离级别为 read uncommitted)
因为读取到了另一个事务中已经提交的数据(比如隔离级别为 read committed)
将事务隔离级别调高到 repeatable read 即可解决
- Lost Update 丢失更新1
- Lost Update 丢失更新2
- Phantom Read 幻读
3
ZN5.png" alt=“事务并发冲突_6隔离级别” style=“zoom:50%;” />
Dirty Read 脏读:个事务读取到了另外一个事务尚未提交的数据
(比如隔离级别为read uncommitted将事务隔离级别调高到read committed即可解决)
Nonrepeatable Read 不可重复读:同一个事务中多次査询到的数据竞然是不同的
因为读取到了另一个事务中没有提交的数据(比如隔离级别为 read uncommitted)
因为读取到了另一个事务中已经提交的数据(比如隔离级别为 read committed)
将事务隔离级别调高到 repeatable read 即可解决
- Lost Update 丢失更新1
- Lost Update 丢失更新2
- Phantom Read 幻读
3
MySQL基础(一位小白)相关推荐
- java基础总结(小白向)
java入门基础总结(小白向) 1.类和对象的理解 理解类和对象对应学习Java尤其重要,可以说类和对象贯穿整个Java语言.我们先给出类和对象比较官方的介绍. 类:具有相同属性和方法的一组对 ...
- MySQL基础总结(三)
MySQL基础总结(三) 文章目录 MySQL基础总结(三) 七.锁机制 1.锁的分类 从对数据操作的类型分类: 从对数据操作的粒度分类: 2.MyISAM 表锁 3.InnoDB 行锁 4.加锁机制 ...
- mysql 基础视图_MySQL基础(4) | 视图
MySQL基础(4) | 视图 基本语法 1.创建 CREATE VIEW AS 语法说明如下. :指定视图的名称.该名称在数据库中必须是唯一的,不能与其他表或视图同名. :指定创建视图的 SELEC ...
- MySQL基础(二)数据库、表的创建及操作
这一部分主要使用SQL中的DDL,数据库定义语言(data definition language),对数据库,表进行新建,修改,和删除. 数据库(database) 显示所有数据库 SHOW DAT ...
- MySQL基础——DDL语言学习\数据库的建立\MySQL数据类型\MySQL常见约束\表的增删改
接上篇文章 MySQL基础--数据库和SQL概述\MySQL基本使用\DQL语言学习 DDL语言学习 Data Definition Language 数据定义语言 主要用于数据库和数据表的管理和操作 ...
- MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询
本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...
- Mysql基础代码(不断完善中)
Mysql基础代码,不断完善中~ /* 启动MySQL */ net start mysql/* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码/* 跳过权限验证 ...
- mysql以下日期函数正确的_[数据库]MYSQL基础03(日期函数)
[数据库]MYSQL基础03(日期函数) 0 2015-10-29 01:00:09 工作中对日期的处理是经常遇到的,需求可能多种多样,因此重点介绍. 1.获取当前日期select NOW()-- 结 ...
- mysql中只运行一部分数据_MySQL(一)——MySQL基础和部分面试题
MySQL基础: 数据库的创建与删除 CREATE DATABASE ;//创建数据库 DROP DATABASE ;//删除数据库 数据库表的创建与删除 CREATE TABLE (column_n ...
- mysql基础知识(二)
这一篇是第二部分,要查看第一部分,请查看这个链接 mysql基础知识(一) DQL语言 1.1简单的单表查询 查询表的通用格式:select [distinct] [*] [列名1,列名] from ...
最新文章
- What’s new: Windows Phone 7 与 Windows Phone 6.5功能对比
- mysql建表以及列属性
- 如何将git上的代码迁移到Coding上
- Java程序访问Mysql Cluster
- Java中集合(五)Set
- Angular 自定义结构化指令,如何传入多个输入参数
- C——printf和scanf返回值问题
- 初学react实现路由跳转_如何使用React构建模因制作者:初学者指南
- 夯实Java基础(二十)——JAVA正则表达式
- [CMake] 配置 install 和 uninstall
- 读完 Effective Java,我整理这 59 条技巧!
- Dockerfile 中的命令
- android plot,androidplot行不显示
- 毕设题目:Matlab图像压缩
- php商城项目开发视频_ThinkPHP开发大型商城项目实战视频_ThinkPHP商城开发案例
- android音频系统简介
- Mounty(卷“xxx”不可重新挂载)挂载失败解决方法
- 什么样的公司程序员待遇好
- 全球圣诞节离不开义乌!义乌购发布圣诞用品搜索热度指数;阿迪达斯将成为Jr. NBA中国官方市场合作伙伴 | 美通社头条...
- smpl-x论文学习-部分翻译