xiaozhuaia 发表于 2018-10-6 13:55:27

mysql轻快入门(1)

  学了这么久的mysql,是应该总结一下了!
  什么是mysql呢?
  一个关系型数据库,数据库服务器为我们提供数据存储服务
  常用的数据库服务器:
  商业:oracle, SQLserver,DB2
  开源:MySQL,postgreSQL,SQLite
  到目前为止接触比较多的是mysql,oracle和sqlite(主要是一个小型数据库,因为小可移植性就比较好,因此多用于嵌入式系统中)
  其中,MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。
  目前 MySQL被广泛地应用在Internet上的中小型网站中。
  由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,
  许多中小型网站为了降低网 站总体拥有成本而选择了MySQL作为网站数据库。
  (1)安装mysql
  在window下安装mysql
  step1:运行mysql.....msi
  step2:next next ....
  step3:配置服务,将mysql的bin加入path
  step4:初始化root密码mysql
  step5:net stop mysql
  step6:找到my.ini改两处编码为gbk
  step7:修改mysql 数据目录
  将原目录下的文件复制到新目录下
  然后才改my.ini中的datadir
  step8:net stop mysql
  net start mysql
  一般比较傻瓜式的安装
  5   权限不够
  whoami
  net user administrator /active:yes
  net stop mysql
  net start mysql
  常用的一些数据库命令:
  登陆mysql
  mysql>mysql -uroot -pmysql
  mysql>mysql -h192.168.149.138 -uroot -pmysql -P3306
  mysql>\q 退出
  show databases;查看mysql服务器管理多少数据库
  create database citest;创建数据库
  show databases;查看mysql服务器管理多少数据库
  use cissst;选择数据
  show tables;查看数据库下有多少表
  select database();查看当前选择的数据库
  select user();查看当前用户
  select @@datadir;查看mysql数据库目
  select @@basedir:查看mysql安装位置
  mysql帮助的用法:
  ? contents;
  先总体看一下,后边细细说
  创建表:
  create table dep(id int not null auto_increment primary key,name varchar(25));
  create table emp(
  id int not null auto_increment primary key,
  dep_id int,
  name varchar(25),
  age int(3) default 18,
  sex enum('M','F') default 'M',
  CONSTRAINT fk_emp_01FOREIGN KEY(dep_id)REFERENCES dep(id)
  );
  查看表结构:
  desc dep;
  查看创建表语句:
  mysql> show create table dep \G
   1. row
  Table: dep
  Create Table: CREATE TABLE dep (
  id int(11) NOT NULL AUTO_INCREMENT,
  name varchar(25) DEFAULT NULL,
  PRIMARY KEY (id)
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk
  1 row in set (0.00 sec)
  mysql> show create table emp \G
   1. row
  Table: emp
  Create Table: CREATE TABLE emp (
  id int(11) NOT NULL AUTO_INCREMENT,
  dep_id int(11) DEFAULT NULL,
  name varchar(25) DEFAULT NULL,
  age int(3) DEFAULT '18',
  sex enum('M','F') DEFAULT 'M',
  PRIMARY KEY (id),
  KEY fk_emp_01 (dep_id),
  CONSTRAINT fk_emp_01 FOREIGN KEY (dep_id) REFERENCES dep (id)
  ) ENGINE=InnoDB DEFAULT CHARSET=gbk
  1 row in set (0.00 sec)
  对表结构的操作:ddL
  create table stu(id int not null auto_increment primary key,name varchar(25),age int(3) default 22,sex enum('m','f'),birth date);
  增加列
  alter table stu add pro varchar(23) after age;
  alter table stu add pro varchar(23) frist;
  alter table stu add pro varchar(23);
  修改列:
  alter table stu modify pro int default 3;
  对列重命名:
  alter table stu change pro prof varchar(3) default 'art';
  删除列:
  alter table stu drop prof;
  对表重命名:
  alter table stu rename to student;
  drop table stu;删除表
  drop database db_name;删除数据库
  DML:
  insert into student(name,age,sex,birth) values('zhangsan',18,'m',now());
  insert into student set name='lisi',age=22,sex='F',birth='1987-12-2';

  update student set name='lisi',age=22,sex='F',birth='1987-12-2' where>  insert into student values(null,'wangwu',24,'m','1983-01-02'),(null,'lida',26,'f','1984-03-04');

  update student name='lisa' where>
  delete from student where>  select * from student;

  alter table stu2 modify>  insert into stu2(name,age,sex,birth) select name,age,sex,birth from stu2;
  看了这么多,用什么感觉,其实数据库真正的东西无非就这些增删改查,再加一些数据库维护的东西罢了,你也许会反驳我,但这儿只是入门用的
  语法不是重点,但总结一下
  1.
  创建表:
  create table tbName (
  列名称1 列类型 [列参数] ,
  ....列2...
  ....
  列名称N 列类型 [列参数] 
  )engine myisam/innodb charset utf8/gbk
  例子:
  create table user (
  id int auto_increment,
  name varchar(20) not null default '',
  age tinyint unsigned not null default 0,

  index>  )engine=innodb
  注:innodb是表引擎,也可以是myisam或其他,但最常用的是myisam和innodb,
  charset 常用的有utf8,gbk;
  还有另外几种:
  create table stu1 like student;创建stu1表
  create table stu2 select * from student;
  2)
  修改表
  1   修改表之增加列:
  alter table tbName
  add 列名称1 列类型 [列参数]  #(add之后的旧列名之后的语法和创建表时的列声明一样)
  2   修改表之修改列
  alter table tbName
  change 旧列名新列名列类型 [列参数] 
  (注:旧列名之后的语法和创建表时的列声明一样)
  3   修改表之减少列:
  alter table tbName
  drop 列名称;
  4   修改表之增加主键
  alter table tbName add primary key(主键所在列名);
  例:alter table goods add primary key(id)
  该例是把主键建立在id列上
  5   修改表之删除主键
  alter table tbName drop primary key;
  6   修改表之增加索引
  alter table tbName add index 索引名(列名);
  7   修改表之删除索引
  alter table tbName drop index 索引名;
  8   清空表的数据
  truncate tableName;
  3)
  列类型:
  整型:tinyint (0~255/-128~127) smallint (0~65535/-32768~32767) mediumint int bigint (参考手册11.2)
  参数解释:
  unsigned 无符号(不能为负)zerofill 0填充M 填充后的宽度
  举例:tinyint unsigned;
  tinyint(6) zerofill;
  数值型
  浮点型:float double
  格式:float(M,D)unsigned\zerofill;
  字符型
  char(m) 定长
  varchar(m)变长
  text
  列          实存字符i      实占空间            利用率
  char(M)    0
页: [1]
查看完整版本: mysql轻快入门(1)