MySQL基本命令

查看数据库列表:

show databases;

连接数据库:

mysql -uroot -p[密码]

选择数据库进入:

use 数据库名

查看表结构:

desc [数据库名] . [表名]

创建数据库:

create database 数据库名;

创建表:

create table 表名 (定义字段)

Create table users (name char(20) not null,passwd char(30)default ‘’, primary key(name));

mysql 创建表:

 

mysql> create table user(

    -> userid int(4) primary key not null auto_increment,

    -> username varchar(16) not null,

    -> userpassword varchar(32) not null

    -> );

删除库、表:

drop table 名

drop database 库名

插入数据:

       Insert into 表名(字段) values (字段值)

              Insert into user(name, passwd )values(‘sun’,123);

更改数据

Update 表名 set 字段名1=值1 where 条件

       Update user set user_passwd=password(‘’) where name=’zhangsan’;

删除数据

Delete from 表名 where 条件

查询数据

Select

设置用户权限:grant

       Grant all on *.* to ‘root’@’192.168.1.108’ identified by ‘123456’;

       Flush privileges;

查看用户权限

Show grand;

Show grand for ‘root’@’locahost’

撤销用户权限

撤销用户读的权限

Revoke select on imployee.* from ‘root’@’locahost’

Flush privileges;

union 合并两张表,都查询出来

select s.* from [表名]

union

select c.* from [表名];

MyISAM和InnoDB区别

MyISAM是MySQL的默认数据库引擎(5.5版之前)。虽然性能极佳,而且提供了大量的特性,包括全文索引、压缩、空间函数等,但MyISAM不支持事务和行级锁,而且最大的缺陷就是崩溃后无法安全恢复。不过,5.5版本之后,MySQL引入了InnoDB(事务性数据库引擎),MySQL 5.5版本后默认的存储引擎为InnoDB。

MySQL通配符

_:任意单个字符

       %:任意长度的任意字符

数据库的备份和恢复

方法一:可直接备份目录  /var/local/mysql/var

方法二:使用专用备份工具      mysqldump

     操作:mysqldump -u 用户名 -p [密码][选项][数据库名][表名] >/备份路径/备份文件名

常见选项:

        --all-databases

        --opt

     恢复操作:mysql -u root -p [数据库名]</备份路径/备份文件

使用别名查看表格

select s.name,s.age from num1 s;

插入表格多个变量

insert into num1(name,age) values("laoyang", 19),("xiaoyang",24),("xiaosu",23);

通过外键查看表格

       select name,c.course,c.score from stu s,stu_s c where c.stu_id = s.id;

left outer join 左外联

select s.*,c.* from student s left outer join stu c on c.id =s.id;

Right outer join 右外联

select s.*,c.* from student s right outer join stu c on c.id =s.id;

内连接

select s.*,c.* from student s inner join stu c on c.id ;

三表内连

select * from asfhj a  inner join demo_stu b on a.sid=b.sid inner join demo_teacher c on c.tid=a.id;

事务的特征(acid)

原子性:所有元素必须作为一个整体,任何元素失败,则整个事务失败。

一致性:当事务完成时,数据必须处于一致状态,开始时数据处于一致状态,进行中可能处于不一致状态,完成时数据必须处于一致

隔离性:所有事务时彼此隔离的,事务必须时独立的。保护数据安全。

持久性:

视图

create view  视图名  as  select 字段名 from 表名;

 

查看MySQL现在已经提供什么储存引擎

       mysql> show engines;

查看mysql当前默认的存储引擎:

mysql> show variables like '%storage_engine%';

查看某个表用了什么引擎(在显示结果里参数engine后面的就表示该表当前用的存储引擎):

mysql> show create table 表名;

修改表的存储引擎:

ALTER TABLE engineTest ENGINE = INNODB;

查看所有用户

    select * from mysql.user \G

删除某个用户

    drop user 用户名@'%';

修改某个用户密码

       set password for '用户名'@'localhost'=password('passwd');

 

 

 

修改某一列为自增:

mysql> alter table test change id  id int AUTO_INCREMENT;

 

mysql> create table t24(id int,name char(10));

mysql> alter table t24 add primary key(id); //添加主键

mysql> alter table t24 modify id int auto_increment;//加入自动增加

 

删除主键唯一约束,还原到建表时的状态*/

mysql> alter table t24 modify id int; //去掉auto_increment

mysql> alter table t24 drop primary key;

mysql> alter table t24 modify id int;//修改默认值为null

 

 

在MySQL中修改字段名

格式:

alter table 表名 change 旧字段名 新字段名 字段属性;

举个例子:

修改users表的name字段为username

alter table users change name username varchar(25);

 

在MySQL中增加字段名

    alter add命令格式:alter table 表名 add字段 类型 其他;

例如,在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0:
   mysql> alter table MyClass add passtest int(4) default '0';

在MySQL中删除字段名

ALTER TABLE table_name DROP field_name;

多表查询

 

查询“zhanglaoshi”教的学生都有谁?

SELECT teacher.t_name,student.s_name FROM s_and_t INNER JOIN student ON student.s_id=s_and_t.s_id

INNER JOIN teacher ON teacher.t_id=s_and_t.t_id

WHERE teacher.t_name='zhanglaoshi'

约束

主键约束

    他能够唯一确定一张表的一条记录,也就是我们通过给某个字段添加字段不重复且不为空。

    Primary key

    联合主键:同一张表中两个主键值加起来不重复就可以

    忘记创建主键的话:alter table 表名 add primary key;

    删除主键约束:alter tables 表名 drop primary key;

自增约束

    Auto_increment

唯一约束

    约束该字段的值不能重复

        Create table user (

Id int,

Name varchar(20),);

        Alter table user add uniqe(name);添加唯一约束

    删除唯一约束:alter table user drop index name

非空约束

    修饰的字段不能为null

        Not null

默认约束

    当我们插入字段值的时候,如果没有传值,就会使用默认值,如果传输了数据,则不会使用默认值

    例如:Default 10

    查询的是时候就会发现默认值就是10。

外键约束

    涉及到最少两个表;

    班级表 

Create table class (

        id int

        Name varchar(20));

    学生表

Create table student(

Id int,

Name varchar(20),

Class_id int ,

Foreign key(class_id) references class(id));添加外键约束

  1. 主表中没有的数值,再副表中,是不可以使用的
  2. 主表中的记录被副表引用,是不可以被删除的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值