一、MySQL
(一)、 SQL语句分类
DDL(Data Definition Language):数据定义语言,用来定义数据库对象:库、表、列等。
DML(Data Manipulation Language):数据操作语言,用来定义数据库记录(数据)。
DCL(Data Control Language):数据控制语言,用来定义访问权限和安全级别。
DQL(Data Query Language):数据查询语言,用来查询记录(数据)
(二)、数据库的操作
1创建:CREATE DATABASE ;语句用于创建新的数据库:
2查看:SHOW DATABASES;查看当前数据库服务器中的所有数据库SHOW DATABASES;
Show CREATE DATABASE mydb2; 查看前面创建的mydb2数据库的定义信息
3修改:ALTER DATABASE mydb2 character SET utf8;查看服务器中的数据库,并把mydb2的字符集修改为utf8;
4删除:DROP DATABASE mydb3;
5其他语句
查看当前使用的数据库
6.sql SQL> Select database();
切换数据库
7.sql SQL> USE mydb2;
(三)、数据表的操作
1.CREATE TABLE语句用于创建新表。
2.DROP TABLE语句用于删除现有表。
3.SHOW TABLES;查看表的字段信息
4.ALTER TABLE employee ADD image blob;增加一列
5.RENAME TABLE employee TO user;重命名
6.ALTER TABLE user CHANGE name username varchar(100);修改表
7.约束
主键约束:primary key----来标识本行数据
唯一约束:unique [key]----这列内容不能重复
非空约束:not null-------这列内容不能为空
默认约束:default--------指的是不指定的时候给的默认值
外键约束:foreign key----
自动增长:auto_increment---指的是每增加一条数据,本列的值会自动加1
(四)、表中数据的操作
1.insert插入操作
INSERT INTO 表名(列名1,列名2 …)VALUES(列值1,列值2…);
2.update修改操作
UPDATE 表名 SET 列名1=列值1,列名2=列值2 … WHERE 列名=值
3.delete删除操作
DELETE 表名 【WHERE 列名=值】
4.select查询操作
select * from 表名 where 列名=值
5.去重 distinct
SELECT DISTINCT sal FROM emp;
6.排序 order by
SELECT * FROM stu ORDER BY sage; 默认升序,desc降序
7.聚合函数
COUNT():统计指定列不为NULL的记录行数;
MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;
MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;
SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0;
AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0;
8.分组查询 group by
查询每个部门的部门编号和每个部门的工资和:
SELECT deptno, SUM(sal) FROM emp GROUP BY deptno;
查询每个部门的部门编号以及每个部门的人数:
SELECT deptno,COUNT(*) FROM emp GROUP BY deptno;
9.限定查询 limit
查询5行记录,起始行从0开始
SELECT * FROM emp LIMIT 0, 5;
10.模糊查询 like
select sno from student where name like ‘_三%’;
11.多表查询
1.内连接
select 表1.列…,表2.列 from 表1 inner join 表2 on 连接条件
2.外连接
左外连接
查询出的结果除了包含符合连接条件的记录以外,还包含左表中剩余的其他记录。
select 表1.列…,表2.列 from 表1 left join 表2 on 连接条件
右外连接
查询出的结果除了包含符合连接条件的记录以外,还包含右表中剩余的其他记录。
select 表1.列...,表2.列 from 表1 right join 表2 on 连接条件
12.外键 Foreign Key
(常用于“一对多”关联关系) 被映射的键一定是主键
创建外键的方式:
在创建表的SQL语句中使用:
constraint 约束名称 foreign key (充当外键的列名) references 主表名称 (与子表外键关联的列名
修改时:
alter table 表2 add
constraint fk_a1_a2 foreign key(pid) references 表1(id);
删除外键:
alter table 表名称 drop foreign key 外键名;
13.字符函数
1 数值运算符和函数:
CEIL() 进一取整
DIV 整数除法
FLOOR() 舍一取整
MOD 取余数或取模
POWER() 幂运算 power(10,3);
ROUND() 四舍五入 round(15.78);
TRUNCATE 数字截取 (123.34,-2)—1002 比较运算符和函数
[NOT] BETWEEN…AND… [不]在范围之内 select 2 between 1 and 3;
[NOT] IN() [不]在列出值范围内 select 1 in (1,2);
IS [NOT] NULL [不]为空 select 1 is null;3 日期时间函数
NOW() 当前日期和时间
CURDATE() 当前日期
CURTIME() 当前时间
DATE_ADD() 日期变化 INTERVAL 365 DAY/YEAR/WEEK select date_add(‘2013-2-2’,interval 365 day);
DATEDIFF() 日期差值 ‘2014-3-20’ ‘2015-3-20’ select datediff(‘2013-2-2’,‘2014-2-2’);
DATE_FORMAT() 日期格式化 %m/%d/%Y select date_format(‘2013-2-2’,’%m/%d/%y’)4 加密函数
MD5()—web加密----不可逆 使用MD5结果来判断
PASSWORD()—修改用户密码
14.where和having的区别
Where
where是一个约束声明,使用where来约束来自数据库的数据;
where是在结果返回之前起作用的;
where中不能使用聚合函数。
having:
having是一个过滤声明;
在查询返回结果集以后,对查询结果进行的过滤操作;
在having中可以使用聚合函数。
二、Linux
(一)、Linux目录结构
/boot :启动目录,内核存放地
/etc:配置文件存放地
/tmp:程序产生的临时文件
/home:用户的目录,新增用户账号时,用户的家目录都存放在此目录
/lib:库文件,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助
/bin:可执行文件和常用的Linux命令
/sbin:系统管理员的命令和工具
/usr:应用程序和文件的安装地
/mnt:挂接其他文件系统
/root:root帐户的home目录
/dev : 存放linux系统下的设备文件
(二)、vi使用:命令模式、插入模式、编辑模式。
vi
功能:生成新文件或者编辑、查看文件。
格式:vi file_name。
说明:上面的命令直接进入vi的命令模式。
从命令模式进入编辑模式
需要按i键或者a键:
1) i插入文本;
2) a追加文本。
使用ESC键可以从编辑模式进入命令模式。
(三)、命令模式
可执行的操作:
1):w 保存文件;
2):wq 保存并退出;
3):wq! 保存并强制退出;
4):q 退出;
5):q! 强制退出;
6)dd 删除一行文字;
7)x 删除一个字符;
8):n 光标移至文本第n行;
9)$ 光标移至文本的行尾;
10)G 光标移至文本的末尾;
11)/ 查找某个字符串。 /sdb
(四)、Linux管理文件和目录的命令
pwd 功能描述:打印用户当前所处的路径。 (print work directory) 在文本模式下,使用命令: [root@localhost ~]#pwd
cd
功能描述:改变用户所在目录。(change directory)
格式:cd <目录名>
[root@localhost ~]#cd … 返回到当前目录的上一级目录
[root@localhost ~]#cd 返回当前用户的主目录
[root@localhost ~]#cd /home 用路径切换到home目录
(五)、ls命令
功能描述:显示指定目录下的内容。(list directory)
格式:ls [参数] [目录或文件]
选项 含义
-a 列举目录中的全部文件,包括隐藏文件
-l 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、
文件是否是链接等
-r 逆向,从后向前地列举目录中内容
-R 递归,该选项递归地列举当前目录下所有子目录内的内容
-s 大小size:数据块
ls -l 1.txt 列举文件1.txt的所有信息
[root@localhost ~]#ls /home 显示指定目/home下的内容。
[root@localhost ~]#ls -l 显示当前目录的详细内容。
[root@localhost ~]#ls -a 显示当前目录下的说有文件,包括隐藏文件。
cat命令:显示文本内容
语法: cat 文本文件名字
例如:在屏幕上显示整个文件的内容: cat 1.txt
touch命令:创建文本(不能插入内容)
语法:touch 文本文件名字
例如:touch 12.txt
grep命令
功能:是在一堆文件中查找一个特定的字符串。
grep money test.txt
以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。
cp命令
功能描述:拷贝文件或复制文件。(copy)
格式:cp [源文件] [目标文件] [root@localhost ~]#ls
[root@localhost ~]#cp hello.txt file1.txt 把文件hello拷贝一份,命名为file1
[root@localhost ~]#ls
[root@localhost ~]#cp hello.txt /home/myfile.txt
把当前目录下文件hello拷贝到路径/home并命名为myfile
[root@localhost ~]#ls /home
选项 含义
-i 互动:如果文件将覆盖目标中的文件,他会提示确认
-r 递归:这个选项会复制整个目录、子目录以及其他
-v 详细:显示文件的复制进度
mv命令:可以对文件或者目录进行移动.
格式:mv [源对象] [目的对象]
选项 说明
-i 互动:如果选择的文件会覆盖目标中的文件,他会提示确认
-f 强制:不提示地移动文件
-v 详细:显示文件的移动进度
[root@localhost ~]#pwd
[root@localhost ~]#mv /dir1/myfile.txt /dir1/newfile.txt
将文件myfile.txt移动到新的目录下并改名为newfile.txt
[root@localhost ~]#ls /dir1
[root@localhost ~]#mv /home/a_dir /home/test/dir2
将目录a_dir移动到新的目录下并改名为dir2
[root@localhost ~]#ls /home
通过ls命令查看a_dir目录是否被移走
[root@localhost ~]