zoukankan      html  css  js  c++  java
  • PostgreSQL与MySQL命令的使用比较

    服务启动:
        1)#service postgresql start
        2)#/etc/init.d/postgresql start
        3)#su  postgresql
           $ pg_ctl start
    PostgreSQL的进程号:1210、1207、

    服务启动:
        1)#service mysqld start
        2)#/etc/init.d/mysqld start
        3)#safe_mysqld&
    MySQL的进程号为1663

    第一次进入数据库:
        #su – postgres 
        $createdb  (建名为postgres的数据库)
        $psql  
    第一次进入数据库:
         #mysql
         mysql>    (出现这个提示符说明成功)

    创建用户:(用户Ajian,密码:123)
        #su – postgres
        $ psql
        =#create user ajian with password ‘123’
    创建用户:(用户Ajian,密码:123)
         #grant all privileges on *.* to 
    ajian@"%" identified by "123"
    (注意:同还可以分配权限,这里是ALL)

    创建数据库(My):
        #su – postgres
        $psql
        =#create database My with owner = ajian template = template1 encoding=’UNICODE’;
    创建数据库(My):
         1)#mysql
         Mysql>create database My;
         2)#mysqladmin create My

    查看用户和数据库:
        #su – postgres
        $ psql 
        =#\l         (查看数据库)
        =#\du        (查看用户)
    查看用户和数据库:
        1)#mysql
         Mysql>show databases;   (看数据库)
         2)#mysqlshow

    新建用户登录:
    (首先修改配置文件)
    # vi /var/lib/pgsql/data/pg_hba.conf(在最后加)
    host all all 127.0.0.1 255.255.255.255 md5

    再重启服务:#service postgresql restart
    登录:#psql –h 127.0.0.1 –U ajian My
    Password:

    新建用户登录:
         1)#mysql –u ajian –p  (带口令登录)
         2)#mysql 
          Mysql>use My; 
         (不带口令登录一般用于本机)

    创建表(employee):
    =#create table employee(
    (#employee_id int primary key,
    (#name char(8),
    (#sex char(2));
    创建表:
    >create table employee(
    ->employee_id int primary key,
    ->name char(8),
    ->sex char(2));

    查看表:
        =#\dt
    查看表:
        >show tables;

    查看表的结构:
        =#\d employee
    查看表的结构:
        >sescribe employee;

    向表中添加数据:
       =#insert into employee values
      -#(‘1’,’zhang’,’F’);
    -#(‘2’,’chen’,’M’,);
    向表中添加数据:
    >insert into employee values
      ->(‘1’,’zhang’,’F’);
    ->(‘2’,’chen’,’M’,);

    查看表的数据:
      =#select * from emlpoyee
    查看表的数据:
    >select * from emlpoyee;

    创建索引(IN_employee):
    =#create index IN_employee on employee(name);

    查看索引:
    =#\di
    删除索引:
    =#drop index IN_employee on employee;
    重建索引:
    =#reindex table employee;(重建employee所有的)
    =#reindex index IN_employee;(重建指定的)

    创建索引(IN_employee):
    1)>create index IN_employee on employee(name);
    2)>alter table employee add index IN_employee(name);
    查看索引:
    >show index from employee;
    删除索引:
    1)>drop index IN_employee on employee;
    2)>alter table emlpoyee drop index IN_employee;
     
    删除表:
       =#drop table employee;
    删除表:
       >drop table employee;

    删除数据库:(注意命令前面的标志)
       1)=#drop database ajian;
       2)$dropdb ajian
    删除数据库:(注意命令前面的标志)
       1)>drop database ajian;
       2)#mysqladmin drop ajian





    最近学习PGSQL。来比较一下他和MYSQL自增字段的不同点。
    1、自增序列。MYSQL从最后一个ID自增。
    测试数据。

    1, I love this girl.
    2, I hate this girl.
    3, She is my girl.
    4, She is your girl
    .
    MYSQL:
    mysql> create database test;
    Query OK, 1 row affected (0.10 sec)

    mysql> use test
    Database changed
    mysql> create table t(id int not null auto_increment primary key,
        -> username char(20) not null);
    Query OK, 0 rows affected (0.02 sec)
    mysql> load data infile '/tmp/test.sql' into table t fields terminated by ',';
    Query OK, 4 rows affected (0.00 sec)
    Records: 4 Deleted: 0 Skipped: 0 Warnings: 0

    mysql> select * from t;
    +
    ----+-------------------+

    | id | username |
    +
    ----+-------------------+

    | 1 | I love this girl. |
    | 2 | I hate this girl. |
    | 3 | She is my girl. |
    | 4 | She is your girl. |
    +
    ----+-------------------+

    4 rows in set (0.00 sec)

    mysql> insert into t values (6,'This is inserted');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into t(username) values('This is last');
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from t;
    +
    ----+-------------------+

    | id | username |
    +
    ----+-------------------+

    | 1 | I love this girl. |
    | 2 | I hate this girl. |
    | 3 | She is my girl. |
    | 4 | She is your girl. |
    | 6 | This is inserted |
    | 7 | This is last |
    +
    ----+-------------------+

    mysql> truncate table t;
    Query OK, 0 rows affected (0.00 sec)

    mysql> insert into t(username) values('This is last');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into t(username) values('This is last');
    Query OK, 1 row affected (0.00 sec)

    mysql> insert into t(username) values('This is last');
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from t;
    +
    ----+--------------+

    | id | username |
    +
    ----+--------------+

    | 1 | This is last |
    | 2 | This is last |
    | 3 | This is last |
    +
    ----+--------------+

    3 rows in set (0.00 sec)

    PGSQL从1开始逐个尝试。

    [root@localhost ~]# psql -Upostgres -hlocalhost
    。。。
    postgres=# create database test;
    CREATE DATABASE
    postgres=# \c test
    You are now connected to database "test".
    test=# create table t(id serial not null,username char(20) not null);
    NOTICE: CREATE TABLE will create implicit sequence "t_id_seq" for serial column "t.id"
    CREATE TABLE
    test=# \d t;
                                 Table "public.t"
      Column | Type | Modifiers 
    ----------+---------------+------------------------------------------------

     id | integer | not null default nextval('t_id_seq'::regclass)
     username | character(20) | not null
    test=# copy t from '/tmp/test.sql' with csv;
    COPY 4
    test=# select * from t;
     id | username 
    ----+----------------------

      1 | I love this girl. 
      2 | I hate this girl. 
      3 | She is my girl. 
      4 | She is your girl. 
    (4 rows)

    test=# insert into t values (6,'This is inserted');
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    ID1重复
    ERROR: duplicate key violates unique constraint "t_pkey"
    test=# insert into t(username) values('This is last');
    ID2重复
    ERROR: duplicate key violates unique constraint "t_pkey"
    test=# insert into t(username) values('This is last');
    。。。
    ID5没有。插入
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    ID6又重复
    ERROR: duplicate key violates unique constraint "t_pkey"
    test=# insert into t(username) values('This is last');
    ...
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# select * from t;
     id | username 
    ----+----------------------

      1 | I love this girl. 
      2 | I hate this girl. 
      3 | She is my girl. 
      4 | She is your girl. 
      6 | This is inserted 
      5 | This is last 
      7 | This is last 
      8 | This is last 
      9 | This is last 
    (9 rows)
    看一下DELETE操作。
    test=# delete from t;
    DELETE 9
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# select * from t;
     id | username 
    ----+----------------------

     10 | This is last 
     11 | This is last 
     12 | This is last 
    (3 rows)
    这个和MYSQL一样的。
    TRUNCATE虽然和MYSQL一样可以快速清空表数据。可是ID还是从最后一个开始增加的,如果想从1开始的话,就得用setval函数来设置。
    test=# truncate table t;
    TRUNCATE TABLE
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# insert into t(username) values('This is last');
    INSERT 0 1
    test=# select * from t;
     id | username 
    ----+----------------------

     13 | This is last 
     14 | This is last 
     15 | This is last 
    (3 rows)
    至于怎么从1重新开始。还在学习中。。。
     


    2、得到刚刚插入的自增ID。

    在MYSQL里面:
    mysql> truncate table t;
    Query OK, 0 rows affected (0.00 sec)

    mysql> insert into t(username) values('This is last');
    Query OK, 1 row affected (0.00 sec)

    mysql> select last_insert_id();
    +
    ------------------+

    | last_insert_id() |
    +
    ------------------+

    | 1 |
    +
    ------------------+

    1 row in set (0.00 sec)
    在POSTGRESQL里面:

    test=# drop table t
    test-# ;
    DROP TABLE
    test=# create table t(id serial not null primary key,username char(20) not null);
    NOTICE: CREATE TABLE will create implicit sequence "t_id_seq" for serial column "t.id"
    NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "t_pkey" for table "t"
    CREATE TABLE
    test=# \d t
                                 Table "public.t"
      Column | Type | Modifiers 
    ----------+---------------+------------------------------------------------

     id | integer | not null default nextval('t_id_seq'::regclass)
     username | character(20) | not null
    Indexes:
        "t_pkey" PRIMARY KEY, btree (id)

    test=# insert into t(username) values('This is test name');
    INSERT 0 1
    test=# select * from t;
     id | username 
    ----+----------------------

      1 | This is test name 
    (1 row)

    test=# select currval('t_id_seq');
     currval
    ---------

           1
    (1 row)

    test=#
    3、设置自增ID的开始值。
    MYSQL:

    mysql> alter table t auto_increment = 3;
    Query OK, 1 row affected (0.01 sec)
    Records: 1 Duplicates: 0 Warnings: 0

    mysql> insert into t(username) values('This is last');
    Query OK, 1 row affected (0.00 sec)

    mysql> select * from t;
    +
    ----+--------------+

    | id | username |
    +
    ----+--------------+

    | 1 | This is last |
    | 3 | This is last |
    +
    ----+--------------+

    2 rows in set (0.00 sec)
    POSTGRESQL:

    t_girl=# select setval('t_id_seq',1,false);
     setval 
    --------

          1
    (1 row)

    Time: 19.554 ms
    t_girl=# insert into t(username) values('wangwei'),('meimei');
    INSERT 0 2
    Time: 1.882 ms
    t_girl=# select * from t;
     id | username 
    ----+----------------------

      1 | wangwei 
      2 | meimei 
    (2 rows)

    Time: 0.598 ms

    aliyun活动 https://www.aliyun.com/acts/limit-buy?userCode=re2o7acl
  • 相关阅读:
    Spring bean相关
    Springboot消除switch-case方法
    Springcloud中的region和zone的使用
    SpringCloud-Eureka-服务注册是如何发起的
    SpringBoot-SpringCloud-版本对应关系
    SpringCloud-Eureka-Provider&Consumer
    激活IDEA
    搞懂spring事务
    部署spring Boot项目到tomcat
    springBoot项目打war包部署到tomcat上
  • 原文地址:https://www.cnblogs.com/wangbin/p/1682478.html
Copyright © 2011-2022 走看看