最新消息: 新版网站上线了!!!

mysql基础操作——学习笔记之mysql

1.数据库基础操作

    mysql -u用户名 -p密码 [--tee=d:\mysql.log]    登录mysql客户端
    show databases;             查看所有的数据库
    use database;               切换到某数据库
    show tables;                查看某数据库下面的所有表
    \s 或 status                查看数据库的状态

2.数据库操作
    show databases;                        查看数据库
    create database 数据库名;              创建数据库    
    drop database 数据库名;                删除数据库
    show create database 数据库名          查看数据库创建情况
    show create table 表名                 查看表的创建情况
    例:create database test default character set utf8;
    create database jdbc default charset=utf8;
     
3.数据表操作

    show tables;            查看数据表
    create table 表名(
        int  属性,
        name 属性,
        age 属性
    )                                            创建数据表
  drop table 表名                              删除数据表
    rename table old表名 to new表名              修改数据表表名
  desc 表名                                    查看表结构
    forexample:
    CREATE TABLE IF NOT EXISTS `member` (
        `id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '编号',
        `user` varchar(20) NOT NULL,
        `passwd` char(40) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

4.数据库设计
    a)字段类型
        数值:int,float
        字符:varchar,char,text,logntext
        日期:date,datetime,time
    b)字段属性
        unsigned
        zerofill
        auto_increment
        null
        not null
        default   
    alter table 表名 default character set 字符集                //修改表的默认字符集
    alter table 表名 CONVERT TO CHARACTER SET charset_name;      //修改表的字符集包括列


5.字符集设置
    my.ini
    [mysqld]服务器
    character-set-server = utf8                       //服务器、数据库和表字符集
    collation-server = utf8_general_ci                //服务器、数据库和表校验字符集
    [mysql]客户端
    default-character-set=utf8                        //客户端和连接字符集

6.表字段索引
    desc select * from 表名 where field = ''\G;
    创建带索引的表:
    create table t1(
        id int unsigned not null auto_increment,
        name varchar(20),
        primary key (id),
        index in_name(name) || key(name)
    )engine=InnoDB default character set utf8;  
    show index from table_name;    //查看索引情况
    ?[参数]    //查看某帮助信息
    
    普通索引:1.添加 
                    alter table 表名 add index in_name(field);
                    alter table 表名 add key(field);
              2.删除 
                    alter table 表名 drop index in_name;
                    a;ter table 表名 drop key(field)

7.表字段维护
    1.添加字段
    alter table 表名 add field 属性 after field;
    
    2.修改字段
    alter table 表名 modify field 属性        
    
    3.删除字段
    alter table 表名 drop field
    
    4.修改字段名
    alter table 表名 change oldfield newfield 属性
    
8.mysql操作语句
    1.concat()
    for: select id,name,concat(id,'--',name) as newfield from table_name;
    
    2.rand()
    for: select id,name,rand()*2 as newfield from table_name;
    
    3.sum()
    
    4.avg()
    
    5.max()
    
    6.min()
    
    7.distinct 去重复
    select distinct * from table_name; 
    
    7.分组聚合
    for: 
        a)select name,count(id) as newfield from table_name group by name order by newfield asc;
        b)select name,count(id) as newfield from table_name group by name having newfield>5 order by newfield asc;
    
    8.多表查询
        a)普通多表查询
            for: select name,count(name) as num  from user as u,post as p where u.id=p.u_id group by u.name;
        b)嵌套查询-多表
            for:select name from user where id in (select distinct u_id from post);
        c)左连接查询-多表
            for:select a.name,b.title from user as a left join post as b on a.id=b.u_id;     
            
    drop table if exists p_user;
    create table p_user(
        id bigint(20) unsigned not null auto_increment primary key comment '编号',
        u_name varchar(20) null comment '姓名',
        u_spell text comment '姓名拼音',
        key u_name(u_name)
    )engine=InnoDB default charset=utf8 comment='人员表';
    desc p_user;
    show create table p_user;    

    DROP TABLE IF EXISTS `tdl_workshop_daily_two_config`;
    CREATE TABLE IF NOT EXISTS `tdl_workshop_daily_two_config`(
        `twt_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' PRIMARY KEY COMMENT '主键',
        `twd_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0' COMMENT '主表主键',
        `did` BIGINT(20) UNSIGNED NULL COMMENT '值班地点'
    )ENGINE=MYISAM ROW_FORMAT=DYNAMIC DEFAULT CHARSET=utf8 COMMENT='车间日报配置主表-值班地点'    

mysql更改密码:

    1.update mysql.user set password = password('newpasswd') where user = '用户名';    //修改密码
    2.flush privileges;                                                                //刷新数据库
       或
    3.grant select,insert,update,delete,show_db on 数据库名.* to 用户名@"主机名" Identified by "密码";
               
mysqlcheck使用: 

    1.mysqlcheck -r -u root -p -A  修复所有的表
    2.mysqlcheck -r -u root -p db_name table_name  修复某数据库的某表
                      
CREATE DATABASE db_name DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
CREATE DATABASE jdbc DEFAULT CHARACTER SET UTF8 DEFAULT COLLATE utf8_general_ci; 

9.数据库事物:
    1.原子性:不可分割。
    2.一致性:事物必须使数据库从一个一致性状态变换到另一个一致性状态。
    3.隔离性:不被其他事物干扰。
    4.持久性:一个事物一旦被提交,它对数据库数据的改变就是永久性的。

问题:
    1.脏读:
    2.不可重复读
    3.幻读
alter table customers modify `name` varchar(30) null unique

欢迎转载,请注明出处,谢谢!!!

by秋风醉我心

.....

转载请注明:谷谷点程序 » mysql基础操作——学习笔记之mysql