首页 > 技术文章 > mysql数据库基础

yyhfirstblog 2019-10-16 13:44 原文

mysql常用的函数:
select user(); --当前用户
version();
select  @@version
select  @@basedir;数据库服务所在的位置
select  @@datadir;数据存放的位置
数据库文件格式:
opt:编码
MYD:存储数据,数据内容
frm:存储表结构
MYI:存储当前数据的配置信息和索引信息
 
mid(被截取的字符串,开始索引,截取长度)
ord()显示字符ASCII
concat()拼接字符串 
concat_ws(分隔符,....)使分隔符拼接字符串
group_concat()分组并拼接
sleep(1)让数据库等待1s
sql语法:
创建数据库:
creat database te;(交互模式)
mysqladmin -u root -p root creat pentest
删除数据库
    drop database te;
mysqladmin -u root -p root drop te
数据库中的数据类型:
int 整形
bigint 大整形
float  浮点型
date 日期
time   时间
char 单个字符
varchar 变长字符
text  文本
timestamp  时间戳
bit 比特
tinyint 0/1
创建表:use表;
create table 表名(字段名1 数据类型,字段名2,数据类型....)
表中需要一个代表,是唯一的,能够标识某个人、某个事物,称为主键,通过主键能确定一个记录
注意:字段名不需要加单双引号,数据类型中根据需求说明长度 varchar(100)
删除表:drop table 表名;
查看表中字段:show create table 表名;desc 表名;
后续添加主键:
alter table 表名 add primary key(字段)注意:主键的字段名不为空
插入数据:INSERT INTO table_name ( field1, field2,...fieldN )VALUE( value1, value2,...valueN );
如果数据是字符型,必须使用单引号或者双引号,如:"value"。
 
查询数据:
select 字段 from 表名
select 字段 from 表名 where 字段名=指定值;
select 字段 from 表名 where 字段1 = 值1and/or 字段2 = 值2;
限制查询limit a,b
更新数据:updata 表名 set 字段1 = 值1,字段2 = 值2
删除表中的数据:delete from 表名;
like子句:
使用百分号 %字符来表示任意字符,类似于UNIX或正则表达式中的星号 *。
select * from stu where name like "shijie%"(模糊查询)
 
union操作符:联合查询
MySQL UNION 操作符用于连接两个以上的 SELECT 语句的结果组合到一个结果集合中。多个 SELECT 语句会删除重复的数据。
语法:查询语句1 union 查询语句2 将他们查询出来的结果放在一张表中显示
可以根据查询语句2的字段重判断查询语句1的字段数
 
Order by的使用
order by条件:根据给定的条件排序,默认情况下升序排列
select * from 表 order by 字段名 [ASC/DESC]根据执行的字段名去排序
ASC  --升序
DESC  --降序
select * from 表 order by 数字 表示对第n列数据进行排序,如果数字超过表格的列数,则会报错,可以根据数字来推断表中列数
 
删除字段:
alter table 表名 drop 字段名;
添加字段:
alter table 表名 add 字段名 字段类型;
修改表名
alter table 原表名 rename 新表名;
去重(distinct)
select distinct name from 表名;
 
注释:#  --
 
 
数据的导入和导入
导入数据
方法1:
        mysql -u root -p root < 需要导入的数据库文件(data.sql)注意:data.sql需要自动创建数据库,并且需要选择该数据库文件
        如果data.sql不会自动创建数据库,手动创建
mysql -u root -p root
create database 数据库
use 数据库
source  数据库文件
 
方法2.使用phpmyadmin等平台导入,不能创建数据库则自己创建
方法3:mysqlimport -u root -p root --local 数据库名 teacher.txt
首先需要创建数据库,创建表teacher,该表的的字段名要和导入的数据的字段保持一致
--local 表示本地任意位置均可导入数据
 
导出数据
1.借助平台(phpmyadmin/mysql-fornt/navicat等)
2.mysqldump -u root -p root 数据库名 >./data.sql
    mysqldump -u root -p root 数据库名 表名 >./table.sql
3.select 字段 from 表名 into outfile "文件";将数据库中的字段内容导入到文件里
首次从数据库中导出文件,数据库会运行“--secure-file-priv”安全机制,会限制导出文件。查看该安全项的值:show global variables like '%secure-file-priv%';
secure-file-priv 为NULL  表示mysql限制导入导出
secure-file-priv 没有值   表示限制
secure-file-priv=/tmp  表示mysql只能在tmp目录下执行导入导出,其他目录不允许
 
修改安全项的方法:
临时方法:set global secure-file-priv=' ';
注意:variable 'serure_file_priv' is a read only variable 表示不能通过sql语句修改
长久方法:修改配置文件,在配置文件中找到[mysql]中添加secure-file-priv = ‘ ’保存退出,重启服务

推荐阅读