mysql基本操作

MySQL数据库

1、概念

数据库: 相当于文件夹
数据库表: 相当于文件
数据行: 相当于文件中的一行数据

2、
启动服务器:
net start mysql

到本地mysql-5.7.16-winx64文件下输入mysql

    mysql.server start 
    
    /etc/init.d/mysql start 
   
客户端连接:

	到本地mysql-5.7.16-winx64文件下输入mysql -u root -p 
    
    
    初试:
        
        show databases;             # 查看当前Mysql都有那些数据,根目录都有那些文件夹
    
        create database 数据库名;   # 创建文件夹
        
        use 数据库名;               # 使用选中数据库,进入目录
        
        show tables;                # 查看当前数据库下都有那些表,
        
        create table 表名(id int,name varchar(20), pwd varchar(64)); # 创建数据库表
        
        select * from 表名;         # 查看表中的所有数据
        
        insert into 表名(nid,name,pwd) values(1,'alex','123');  # 插入数据
        
        -- select * from 表名;

3、用户授权
用户管理特殊命令:
创建用户
create user ‘用户名’@‘IP地址’ identified by ‘密码’;
删除用户
drop user ‘用户名’@‘IP地址’;
修改用户
rename user ‘用户名’@‘IP地址’; to ‘新用户名’@‘IP地址’;;
修改密码
set password for ‘用户名’@‘IP地址’ = Password(‘新密码’)

    c:\mysql-5.7.16-winx64\mysql-5.7.16-winx64\bin\mysql -u
    
权限:
    默认,什么都没有
    
    grant  权限 on 数据库.表 to  '用户'@'IP地址'      -- 授权
    
    select,查
    
    数据库.表
        test.tb1
        test.*
    
    '用户'@'IP地址'
        xiaohu@localhost
        
    ===========重要,远程连接=============
    

a. 解放双手,在重复操作文件,直接将命令发送给mysql服务端,自动操作
b. 数据库,表,行
c. 开户和授权
    密码,必须用
    其他,推荐用
    
d. 客户端连接(MySQL提供的客户端)
    1、 
        mysql -u root -h 192.168.1.1 -p
        # 输入密码
        
    2、
        
        初试:
            
            show databases;             # 查看当前Mysql都有那些数据,根目录都有那些文件夹
        
            create database 数据库名;   # 创建文件夹
            
            use 数据库名;               # 使用选中数据库,进入目录
            
            show tables;                # 查看当前数据库下都有那些表,
            
            create table 表名(nid int,name varchar(20), pwd varchar(64)); # 创建数据库表
            
            select * from 表名;         # 查看表中的所有数据
            
            insert into 表名(nid,name,pwd) values(1,'alex','123');  # 插入数据
            
            -- select * from 表名;

4、 SQL语句

数据库级别
    SHOW DATABASES;
    
    CREATE DATABASE 数据库名称;
    CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
    
    USE 数据库名称;
    
    drop database 数据库名称;
    
表级表
    show tables;
    desc tb1;
    
    *** create table tb1(nid int, name varchar(10));
    # 事务,原子操作,回滚
    
    a. 默认值
    b. 是否可以为空
    c. 自增列(一张表只能有一个,数字,必须是索引-主键)
    d. 主键索引:
    
         一张表只能有一个主键,唯一不能重复,不能为null,- 一般情况下,自增列设置主键
         1,2,3,4,5,6
       唯一索引:
            可以为null,一张表可以有多个唯一列
            1,2,3,4,5,6,null
        
        -- 约束
        -- 索引,加速查找
    
        create table xxx(
            nid.... primary key,
            .... 
        )
        
        create table student(
            name varchar(10) not null,
            num  int not null,
            age int,
            gender int,
            primary key (name,num)
        )
        约束:
            name num age 
             a   88  10
             a   99   11
             a   88   0
             
        # 主键:
                不能为null,
                不能重复,
                一张表只有一个主键(可以多列组成主键)
        # 一般用法:
                nid int auto_increment primary key,
        
        # 请在本地创建表:
            CREATE DATABASE 数据库名称 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
            use 数据库名称;

            create table tb5(
                nid int not null auto_increment primary key,
                name varchar(16),
                age int default 19
            )engine=innodb default charset=utf8;
        
    e. 外键foreign key,一对多
        
        两张表建立约束
        
        -- 约束
        -- foreign key,一对多
    
    
    
    f. 数据类型:数值、时间和字符串
        数值:
            二进制:
                bit 二进制
            整数:
                tinyint
                smallint
                int
                bigint
                    - 范围不一样
               
            小数:
                decimal --精确的
               
                        -- 985412154521321.857541245421245845
                FLOAT   -- 98541215458798465465749465465465421321.857541245420000000
                        -- 985412154000000000000000000000000000000000000000000000000
                DOUBLE  -- 9854121544587984654657494654654654000000000000000000000000
            
        字符串:
            # 定长
                char
                create table tb13(n char(7),b int, c int)
                insert ssss
                # 查找速度快,浪费空间
            
            
            # 变长
                varchar
                create table tb13(n varchar(7),b int, c int)
                insert ssss
                insert sssss
                insert sssss5
                # 查获找速度慢,节省空间
                text
                mediumtext
                longtext
       二进制数据:
            TinyBlob、Blob、MediumBlob、LongBlob
            # 上传文件
            # Blob,强制二进制方式
            # varchar(65), "D:\av.avi" 将上传的文件保存在硬盘, D:\av.avi ;
            
       时间:
            DATE
                YYYY-MM-DD(1000-01-01/9999-12-31)
                # 1996-12-12 18:45
                
            TIME
                HH:MM:SS('-838:59:59'/'838:59:59')

            YEAR
                YYYY(1901/2155)

            DATETIME

                YYYY-MM-DD HH:MM:SS(1000-01-01 00:00:00/9999-12-31 23:59:59    Y)

            TIMESTAMP

                YYYYMMDD HHMMSS(1970-01-01 00:00:00/2037 年某时)
            
        enum
            单选
        
        集合
            多选
        
    create table tb13(num decimal(6,2)) #8888.18
                
    drop table tb1;     # 直接表删除
    
    delete from tb1;    # 清空表内容
    truncate table tb1; # 清空表内容,速度快,自增回到远点
    
    select * from tbl;
    
数据行级别 *****
    select * from tbl;
    
    # 增
        insert into tb1(name,age) values('alex', 18);
        insert into tb1(name,age) values('alex', 18),('eric', 19),('eric', 19);
        
    # 删
    alter table 表名 drop 列名
    
    # 改
    alter table 表名 modify 字段名 数据类型
    update into 表名 set 列名=列值 where 列名=列值
    # 查
    select * from 表名
    # 其他

连表操作:
            # 连表
            select * form a,b where a.x = b.o
            
            # join,
                a. left join
                    select * from a LEFT OUTER JOIN b ON a.x = b.o
                
                b. inner join ,永远不会出现Null
                    select * from a inner JOIN b ON a.x = b.o
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值