Mysql数据库学习笔记

数据库层面相关操作


一、登录MySQL数据库

1、本地数据库

mysql -u 用户名 -p     回车输入密码,密码不可见

比如:mysql -u root -p  #先输入,回车,输入密码

2、远程数据库

mysql-h 主机-P 端口-u 用户名-p 

比如:mysql -h 10.136.159.10 -u root -p 

3、退出数据库

exit        quit        \q 三种方式在远古版本不同,现版本无差别

4、数据库概念图

二、数据库相应操作

以下操作需要执行第一步登录数据库后     db_name1 、db_name2   数据库名  table_name 表名

1、创建数据库

create database [if not exists] db_name [character set utf-8];

if not exists 即如果不存在,if exists 即如果存在

 [character set utf-8]设置字符编码形式

[]中的内容可以加可以不加,加上是规范,不加是简便

2、查看数据库

show databases;

3、使用数据库

use db_name;

4、删除数据库

drop database db_name;

5、查看当前使用的数据库

select database();

6、添加数据库用户密码

(1)创建用户的同时赋予权限

grant select,insert,update,delete,create,drop on db_name1.table_name to 'username'@'localhost' identified by '123456';

grant代表赋予/允许。

select:查询;insert:插入;update:更新;create:创建;drop:删除。

on db_name1.table_name:表示添加的用户对那个数据库的那个表有效。如果想设置为对整个数据库有效,则改为:on db_name1.*

注意:若需要添加的用户是需要mysql总库中,也就是登录mysql的用户,此语句变为on mysql.*

 to 'username'@'localhost' identified by '123456';

username:添加的用户名

@localhost:表示只能在本机登录,如果想设置为都能登录,则改为@'%'

by '123456' :设置密码。

(2)创建用户,赋予权限

创建用户:create user 'username' @'localhost' identified by '123456';

赋予权限:grant select on db_name.table_name to 'username' @'host'

(3)赋予权限后,刷新权限

flush  privileges;

有的时候mysql会有延迟,执行这一步语句,会刷新当前所有权限。

7、修改数据库用户名或密码

(1)修改数据库用户密码

update user  set password =password('new password') where user='username';

(2)修改数据库用户名

update   user   set  user='new username'  where   user= 'old username';

8、查询或删除数据库用户:

(1)查询数据库的用户

select user from mysql.user;

mysql.user代表mysql数据库中的user表,每个mysql数据库都会有这么一个表,表中的用户拥有登录mysql的权限。

(2)删除数据库的用户

drop user 'username'@'localhost';

9、重命名数据库:

mysql高于1.4版本无此功能,可使用新建数据库,将原先内容导入进去的方法

假如源数据库名称为“db_name1”,目标数据库名称为"db_name2"

首先创建目标数据库:

create database db_name2;

查看源数据库中的所有表名:

(1)use db_name1;

(2)select table_name from TABLES where TABLE_SCHEMA= ‘db_name1’;

或是语句,在执行(1)之后,执行show tables;

针对上面查询出来的表名,依次执行以下命令:

rename table db_name1.tablename1 to db_name2.tablename1;

这样源数据库db_name1中的表(表结构和表数据)就被全部迁移到目标数据库db_name了。



数据库表层面相关操作


常用数据类型 INT 在设计表中的长度无效,

int  有符号:的长度大小为-2147483648-2147483647

无符号的长度大小为0-4294967295

decimal 小树类型,  表示方法(5,3)长度为5,小数点后为3

vachar 文本类型

以上信息,均可以通过cmd登录数据库后,使用help指令查看

主键约束,底层,唯一,无符号0-

创建表之前要删除佟明彪,删除语句,

drop table if exists-"表名"

逻辑删除,创建字段,默认值为0 isdelete   删除为1

通畅的删除乃是为该字段的值,在以后的查询中,利用该字段的条件进行筛选。

update student是set欧式delete =“”0“”这是给用户展现出的删除语句,实际上是更新语句

一般查询时,都会在后面注明条件,where isdelete =“1”

给表中的字段起别名,以方便查询

selete name as xingming from students

一般情况下都是在给表起别名,当进行连接查询的时候,方便查询出正确的值

select * from students as stu

消除重复行操作,一般情况下,数据库中存在重复的数据,查询时需要消除重复数据

select distanct * from from students

逻辑查询中的且、或、非

且:and 或:or  非 !=

模糊查询中的用法

%:代表任意字符,多个。一个或是没有

—:代表一个字符

— —两个下划线就代表两个字符

范围查询中的in 和between用法

in :可以是不连续的,一个一个列举出来

比如,查询家乡是北京,上海、广东的学生信息

select * from students where hometown in("北京","上海","广东")

between:连续的数据

比如,查询年龄在10岁到20岁的学生信息

select * from students where age between 10 and 20

数据库字段关于“空”的判断

只有当数据库中显示为null的时候,这个字段才是空值,而当字段值为“ ”的时候,并不是空值,或是隐藏字符,或是空格

判断一个字段是不是空值,应该是用is 关键字

where name is null

where name is not null

查询后排序  order by 关键字中的asc 和 desc的两种顺序 

asc是正序,一般情况下可以省略,desc是倒序,不可省略

select * from students order by age desc

同样,当年龄相同时,可以再行排序 order by age desc,studentNo asc

中文排序,当利用中文排序时,需要转换编码

select * from students order by conuert (name using gbk)

聚合函数

count 行总数 一般情况下用count (*)

最大值最小值 Max(age) min(age)

求和 sum(age)

平均值 avg(age)

你可能感兴趣的:(Mysql数据库学习笔记)