zoukankan      html  css  js  c++  java
  • MySql数据库学习笔记(1)

    MySql数据库

    下载地址
    https://dev.mysql.com/downloads/mysql/5.1.html#downloads

    连接到本机上的MYSQL
    mysql -u root -p

    1. 创建数据库
      命令:create database <数据库名>;
      create database Myschool;

    2. 查看数据库
      命令:show databases;

    3. 创建表
      ERROR 1046 (3D000): No database selected //未选中数据库
      Database changed
      mysql> use Myschool;
      Database changed
      mysql> create table subject
      -> (SubjectNo int primary key,
      -> SubjectName varchar(50),
      -> ClassHour int,
      -> GreadID int);

    4. 查看所有表;
      mysql> show tables;

    5. 查看创建表结构
      mysql> show create table Subject;

    6. 删除数据库
      命令:drop database <数据库名>
      例如:删除名为 xhkdb的数据库
      mysql> drop database Myschool;

    数据类型:
    varchar(5)-->变长;
    char(5)-->定长;
    Can't connect to MySQL server on localhost 没有启动MySQL服务

    创建Student表格
    mysql> create table Student
    (StudentNo int(4) not null comment'学号',
    LoginPwd varchar(20),
    StudentName varchar(20) comment'学生姓名',
    Sex tinyint(1) comment'性别,取值0或者1',
    GradeID int(11) comment '年级编号',
    Phone varchar(50) not null comment '联系电话允许为空',
    Adress varchar(255) not null comment '地址允许为空',
    BornDate datetime comment '出生时间',
    Email varchar(50) comment '邮箱账号允许为空',
    IdentityCard varchar(18) comment '身份证号码');

    SHOW ENGINES

    显示存储引擎的状态信息。对于检查一个存储引擎是否被支持,或者对于查看默认引擎是什么,本语句十分有用。
    mysql> show engines;
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | Engine | Support | Comment | Transactions | XA | Savepoints |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    | InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
    | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
    | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
    | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
    | MyISAM | YES | MyISAM storage engine | NO | NO | NO |
    | CSV | YES | CSV storage engine | NO | NO | NO |
    | ARCHIVE | YES | Archive storage engine | NO | NO | NO |
    | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
    | FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
    +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
    MyISAM :节约空间及相应速度
    InnoDB:安全性,事务处理及多用户操作数据表

    mysql> show variables like 'datadir';
    +---------------+---------------------------------------------+
    | Variable_name | Value |
    +---------------+---------------------------------------------+
    | datadir | C:ProgramDataMySQLMySQL Server 5.7Data |
    +---------------+---------------------------------------------+

    修改表结构:

    1. 添加字段
      mysql> alter table Student add CollegeMajor varchar(50);
      语法:ALTER TABLE table_name ADD field_name field_type;

    2. 查看表结构:
      语法:desc tabl_name;
      mysql> describe Student;
      或: mysql> desc Student;
      +--------------+--------------+------+-----+---------+-------+
      | Field | Type | Null | Key | Default | Extra |
      +--------------+--------------+------+-----+---------+-------+
      | StudentNo | int(4) | NO | | NULL | |
      | LoginPwd | varchar(20) | YES | | NULL | |
      | StudentName | varchar(20) | YES | | NULL | |
      | Sex | tinyint(1) | YES | | NULL | |
      | GradeID | int(11) | YES | | NULL | |
      | Phone | varchar(50) | NO | | NULL | |
      | Adress | varchar(255) | NO | | NULL | |
      | BornDate | datetime | YES | | NULL | |
      | Email | varchar(50) | YES | | NULL | |
      | IdentityCard | varchar(18) | YES | | NULL | |
      | CollegeMajor | varchar(50) | YES | | NULL | |
      +--------------+--------------+------+-----+---------+-------+

    3. 修改表名;
      mysql> alter table t_test rename tbl_test;

    4. 修改列名;
      mysql> alter table Student change CollegeMajor2 Interest varchar(255);

    5. 修改列属性;
      mysql> alter table Student Modify Adress char(255);

    6. 删除列;
      mysql> alter table Student drop is_deleted;

    7. 删除表;
      mysql> drop table t_test;

    MySQL数据库管理

    DML:数据操作语言,用于操作数据库对象包含的数据
    包括:
    - INSERT ; 
    - UPDATE ;
    - DELETE ;
    

    DML

    insert

    1. mysql> insert into Grade(GradeId,GradeName) value(1,'大一');
    2. mysql> insert into Grade value(2,'大二');
    3. mysql> insert into Grade value(3,'大三'),(4,'大四');
    4. mysql> insert into Grade(GradeName)
    -> select  GradeName from Grade ;
    
    1. 修改字段为自动增长
    mysql> alter table Grade modify GradeID int auto_increment;
    
    2. 修改表编码
    mysql> alter table Grade charset=utf8;
    
    base 查询:	
    

    mysql> select * from Grade;
    +---------+-----------+
    | GradeID | GradeName |
    +---------+-----------+
    | 1 | 大一 |
    +---------+-----------+

    update

    mysql> update Grade set GradeName ='二年级' where GradeID=2;

    mysql> update Grade set GradeName = '二二级' where GradeID =6 or GradeID = 13;

    ('高等数学-1',120,1),('高等数学-2',110,2),('高等数学-3',100,3),('高等数学-4',130,4);```
    
    ```mysql> update subject set ClassHour = ClassHour-10 where classhour >110  and GreadID =1;```
    
    
    mysql> select * from subject;
    +-----------+-------------+-----------+---------+
    | SubjectNo | SubjectName | ClassHour | GreadID |
    +-----------+-------------+-----------+---------+
    |         1 | 高等数学-1  |       110 |       1 |
    |         2 | 高等数学-2  |       110 |       2 |
    |         3 | 高等数学-1  |       110 |       1 |
    |         4 | 高等数学-2  |       110 |       2 |
    |         5 | 高等数学-3  |       100 |       3 |
    |         6 | 高等数学-4  |       130 |       4 |
    +-----------+-------------+-----------+---------+
    
    ERROR 1093 (HY000): You can't specify target table 'subject' for update in FROM clause
    
    select ClassHour from subject where SubjectNo = 6
    
    update subject set ClassHour =
    (select ClassHour from
    (select ClassHour from subject 
    where subjectNO =6) as ch ) //as ch 作为临时表
    where SubjectNo =1;
  • 相关阅读:
    Gerrit配置--用户配置
    repo+manifests+git方式管理安卓代码
    FLASH OTP
    Wireshark抓包分析TCP协议
    python 批量修改图片大小
    python 文件查找 glob
    python 统计单词个数
    python 图片上添加数字源代码
    python 删除文件和文件夹
    python 程序列表
  • 原文地址:https://www.cnblogs.com/xuwei1/p/6909430.html
Copyright © 2011-2022 走看看